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@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5393>
This commit is contained in:
Eric Anholt 2020-06-08 15:36:16 -07:00 committed by Marge Bot
parent 109816b518
commit 72fe7b98ea
7 changed files with 22 additions and 12 deletions

View 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:

View File

@ -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/

View File

@ -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.

View File

@ -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

View File

@ -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

0
.gitlab-ci/bare-metal/init.sh Normal file → Executable file
View File

View File

@ -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/