Mesa (master): ci/bare-metal: Stop fetching the git tree.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jun 12 23:50:40 UTC 2020


Module: Mesa
Branch: master
Commit: 72fe7b98eaff90e1ca5e10691f983f5d891118be
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=72fe7b98eaff90e1ca5e10691f983f5d891118be

Author: Eric Anholt <eric at anholt.net>
Date:   Mon Jun  8 15:36:16 2020 -0700

ci/bare-metal: Stop fetching the git tree.

Like for LAVA, make the tradeoff of moving the test scripts and data (55k)
into the artifacts in order to make the per-build jobs not have to pull
down the git tree (hundreds of MB when you don't hit a cached container
for your specific user, which I see happen multiple times a day in my CI
runs).

To do this, we have to be a bit more careful in some places about our
working directory potentially being dirty.

Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5393>

---

 .gitlab-ci.yml                             |  7 ++++---
 .gitlab-ci/bare-metal/cros-servo.sh        |  7 ++++++-
 .gitlab-ci/bare-metal/fastboot.sh          | 13 ++++++++-----
 .gitlab-ci/bare-metal/google-power-down.sh |  2 +-
 .gitlab-ci/bare-metal/google-power-up.sh   |  4 ++--
 .gitlab-ci/bare-metal/init.sh              |  0
 .gitlab-ci/prepare-artifacts.sh            |  1 +
 7 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3f561c3b418..f561d96a3a5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -885,13 +885,14 @@ arm64_a630_gles2:
     BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init"
     DEQP_EXPECTED_FAILS: deqp-freedreno-a630-fails.txt
     DEQP_SKIPS: deqp-freedreno-a630-skips.txt
+    GIT_STRATEGY: none
     NIR_VALIDATE: 0
     DEQP_EXPECTED_RENDERER: FD630
     DEQP_NO_SAVE_RESULTS: ""
   tags:
     - google-freedreno-cheza
   script:
-    - .gitlab-ci/bare-metal/cros-servo.sh
+    - ./install/bare-metal/cros-servo.sh
 
 arm64_a630_gles31:
   extends: arm64_a630_gles2
@@ -993,7 +994,7 @@ arm64_a306_gles2:
     DEQP_NO_SAVE_RESULTS: 1
     # NIR_VALIDATE=0 left intentionally unset as a3xx is fast enough at its small testsuite.
   script:
-    - .gitlab-ci/bare-metal/fastboot.sh
+    - ./install/bare-metal/fastboot.sh
   needs:
     - arm_test-base
     - arm64_test
@@ -1021,7 +1022,7 @@ arm64_a306_gles3_options:
     DEQP_VER: gles3
   script:
     # Check that the non-constbuf UBO case works.
-    - DEQP_RUN_SUFFIX=-nouboopt IR3_SHADER_DEBUG=nouboopt DEQP_CASELIST_FILTER="functional.*ubo" .gitlab-ci/bare-metal/fastboot.sh
+    - DEQP_RUN_SUFFIX=-nouboopt IR3_SHADER_DEBUG=nouboopt DEQP_CASELIST_FILTER="functional.*ubo" ./install/bare-metal/fastboot.sh
 
 arm64_a530_gles2:
   extends:
diff --git a/.gitlab-ci/bare-metal/cros-servo.sh b/.gitlab-ci/bare-metal/cros-servo.sh
index 43982e07f96..091d24695d5 100755
--- a/.gitlab-ci/bare-metal/cros-servo.sh
+++ b/.gitlab-ci/bare-metal/cros-servo.sh
@@ -4,7 +4,7 @@
 # NFS and TFTP to boot.
 
 # We're run from the root of the repo, make a helper var for our paths
-BM=$CI_PROJECT_DIR/.gitlab-ci/bare-metal
+BM=$CI_PROJECT_DIR/install/bare-metal
 
 # Runner config checks
 if [ -z "$BM_SERIAL" ]; then
@@ -47,6 +47,11 @@ fi
 
 set -ex
 
+# Clear out any previous run's artifacts.
+rm -rf results/
+mkdir -p results
+find artifacts/ -name serial\*.txt  | xargs rm -f
+
 # Create the rootfs in the NFS directory.  rm to make sure it's in a pristine
 # state, since it's volume-mounted on the host.
 rsync -a --delete $BM_ROOTFS/ /nfs/
diff --git a/.gitlab-ci/bare-metal/fastboot.sh b/.gitlab-ci/bare-metal/fastboot.sh
index 2b1edbac45b..2ed636f637c 100755
--- a/.gitlab-ci/bare-metal/fastboot.sh
+++ b/.gitlab-ci/bare-metal/fastboot.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-BM=$CI_PROJECT_DIR/.gitlab-ci/bare-metal
+BM=$CI_PROJECT_DIR/install/bare-metal
 
 if [ -z "$BM_SERIAL" -a -z "$BM_SERIAL_SCRIPT" ]; then
   echo "Must set BM_SERIAL OR BM_SERIAL_SCRIPT in your gitlab-runner config.toml [[runners]] environment"
@@ -47,11 +47,14 @@ fi
 
 set -ex
 
-# Copy the rootfs to a temporary for our setup, as I believe changes to the
-# container can end up impacting future runs.
-cp -Rp $BM_ROOTFS/ rootfs
+# Clear out any previous run's artifacts.
+rm -rf results/
+mkdir -p results
+find artifacts/ -name serial\*.txt  | xargs rm -f
 
-. .gitlab-ci/bare-metal/rootfs-setup.sh rootfs
+# Create the rootfs in a temp dir
+rsync -a --delete $BM_ROOTFS/ rootfs/
+. $BM/rootfs-setup.sh rootfs
 
 # Finally, pack it up into a cpio rootfs.  Skip the vulkan CTS since none of
 # these devices use it and it would take up space in the initrd.
diff --git a/.gitlab-ci/bare-metal/google-power-down.sh b/.gitlab-ci/bare-metal/google-power-down.sh
index ffb6b4cc6df..9aa68a70d33 100755
--- a/.gitlab-ci/bare-metal/google-power-down.sh
+++ b/.gitlab-ci/bare-metal/google-power-down.sh
@@ -7,4 +7,4 @@ if [ -z "$relay" ]; then
     exit 1
 fi
 
-$CI_PROJECT_DIR/.gitlab-ci/bare-metal/google-power-relay.py off $relay
+$CI_PROJECT_DIR/install/bare-metal/google-power-relay.py off $relay
diff --git a/.gitlab-ci/bare-metal/google-power-up.sh b/.gitlab-ci/bare-metal/google-power-up.sh
index 6f44c72b660..f0c054162a2 100755
--- a/.gitlab-ci/bare-metal/google-power-up.sh
+++ b/.gitlab-ci/bare-metal/google-power-up.sh
@@ -7,6 +7,6 @@ if [ -z "$relay" ]; then
     exit 1
 fi
 
-$CI_PROJECT_DIR/.gitlab-ci/bare-metal/google-power-relay.py off $relay
+$CI_PROJECT_DIR/install/bare-metal/google-power-relay.py off $relay
 sleep 5
-$CI_PROJECT_DIR/.gitlab-ci/bare-metal/google-power-relay.py on $relay
+$CI_PROJECT_DIR/install/bare-metal/google-power-relay.py on $relay
diff --git a/.gitlab-ci/bare-metal/init.sh b/.gitlab-ci/bare-metal/init.sh
old mode 100644
new mode 100755
diff --git a/.gitlab-ci/prepare-artifacts.sh b/.gitlab-ci/prepare-artifacts.sh
index 86abacfdfd9..caeb8727160 100755
--- a/.gitlab-ci/prepare-artifacts.sh
+++ b/.gitlab-ci/prepare-artifacts.sh
@@ -23,6 +23,7 @@ find install -name \*.so -exec $STRIP {} \;
 # Test runs don't pull down the git tree, so put the dEQP helper
 # script and associated bits there.
 cp VERSION install/
+cp -Rp .gitlab-ci/bare-metal install/
 cp -Rp .gitlab-ci/deqp* install/
 cp -Rp .gitlab-ci/piglit install/
 cp -Rp .gitlab-ci/traces.yml install/



More information about the mesa-commit mailing list