Structured tagging (cf. mesa/mesa!33421) captures a checksum of the thing we think we're building, and verifies this through the chain. When we run container builds, we check that the tag we've captured in the CI variables matches the calculated checksum, to make sure the declared tags are consistent and we always have traceability. When we run tests, we check the tags again between what was declared in the CI variables and what we're actually running from the test container. This makes sure that we're always testing what we think we're testing. As a side advantage, the rule inheritance we need to make this work means that we can start doing more optional downloads via overlays, instead of pulling a whole container full of stuff we might not ever use. Signed-off-by: Daniel Stone <daniels@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34539>
43 lines
1.4 KiB
Bash
43 lines
1.4 KiB
Bash
#!/bin/bash
|
|
# shellcheck disable=SC2086 # we want word splitting
|
|
set -uex
|
|
|
|
uncollapsed_section_start piglit "Building piglit"
|
|
|
|
# When changing this file, you need to bump the following
|
|
# .gitlab-ci/image-tags.yml tags:
|
|
# DEBIAN_TEST_GL_TAG
|
|
# DEBIAN_TEST_VK_TAG
|
|
# KERNEL_ROOTFS_TAG
|
|
|
|
# Do a very early check to make sure the tag is correct without the need of
|
|
# setting up the environment variables locally
|
|
ci_tag_build_time_check "PIGLIT_TAG"
|
|
|
|
REV="0ecdebb0f5927728ddeeb851639a559b0f7d6590"
|
|
|
|
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
|
|
pushd /piglit
|
|
git checkout "$REV"
|
|
patch -p1 <$OLDPWD/.gitlab-ci/piglit/disable-vs_in.diff
|
|
cmake -S . -B . -G Ninja -DCMAKE_BUILD_TYPE=Release $PIGLIT_OPTS ${EXTRA_CMAKE_ARGS:-}
|
|
ninja ${PIGLIT_BUILD_TARGETS:-}
|
|
find . -depth \( -name .git -o -name '*ninja*' -o -iname '*cmake*' -o -name '*.[chao]' \) \
|
|
! -name 'include_test.h' -exec rm -rf {} \;
|
|
rm -rf target_api
|
|
if [ "${PIGLIT_BUILD_TARGETS:-}" = "piglit_replayer" ]; then
|
|
find . -depth \
|
|
! -regex "^\.$" \
|
|
! -regex "^\.\/piglit.*" \
|
|
! -regex "^\.\/framework.*" \
|
|
! -regex "^\.\/bin$" \
|
|
! -regex "^\.\/bin\/replayer\.py" \
|
|
! -regex "^\.\/templates.*" \
|
|
! -regex "^\.\/tests$" \
|
|
! -regex "^\.\/tests\/replay\.py" \
|
|
-exec rm -rf {} \; 2>/dev/null
|
|
fi
|
|
popd
|
|
|
|
section_end piglit
|