ci/bare-metal: Stop fetching the git tree.
authorEric Anholt <eric@anholt.net>
Mon, 8 Jun 2020 22:36:16 +0000 (15:36 -0700)
committerMarge Bot <eric+marge@anholt.net>
Fri, 12 Jun 2020 23:34:44 +0000 (23:34 +0000)
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@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5393>

.gitlab-ci.yml
.gitlab-ci/bare-metal/cros-servo.sh
.gitlab-ci/bare-metal/fastboot.sh
.gitlab-ci/bare-metal/google-power-down.sh
.gitlab-ci/bare-metal/google-power-up.sh
.gitlab-ci/bare-metal/init.sh [changed mode: 0644->0755]
.gitlab-ci/prepare-artifacts.sh

index 3f561c3b418e88310af7e10aa75d9ac0d10e8141..f561d96a3a502cfe31ac940a4adec5f6c02f2e3d 100644 (file)
@@ -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:
index 43982e07f9600cea3c5eebe1536ce732a5c55014..091d24695d50c42a95c70f15aa0b95ba841b5181 100755 (executable)
@@ -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/
index 2b1edbac45b78c663ccbd8f4975a401d47058631..2ed636f637cd0835749c54d6bab50fadbc5d1ae7 100755 (executable)
@@ -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.
index ffb6b4cc6df110d38de83abaf02dfb95f978c548..9aa68a70d333aae68e649a303fe2cb5d203bfd10 100755 (executable)
@@ -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
index 6f44c72b6607b8c86a3eb7de32ae36a9e3927945..f0c054162a214953351947da2a66228e5741133d 100755 (executable)
@@ -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
old mode 100644 (file)
new mode 100755 (executable)
index 86abacfdfd9a46bff722c073c6c0affc5096aa34..caeb87271603b33b9aadec53ad0221c3b83dd761 100755 (executable)
@@ -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/