diff options
Diffstat (limited to 'drivers/gpu/drm/ci/build-igt.sh')
| -rw-r--r-- | drivers/gpu/drm/ci/build-igt.sh | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/drivers/gpu/drm/ci/build-igt.sh b/drivers/gpu/drm/ci/build-igt.sh new file mode 100644 index 000000000000..eddb5f782a5e --- /dev/null +++ b/drivers/gpu/drm/ci/build-igt.sh @@ -0,0 +1,74 @@ +#!/bin/bash +# SPDX-License-Identifier: MIT + +set -ex + +function generate_testlist { + set +x + while read -r line; do + if [ "$line" = "TESTLIST" ] || [ "$line" = "END TESTLIST" ]; then + continue + fi + + tests=$(echo "$line" | tr ' ' '\n') + + for test in $tests; do + output=$(/igt/libexec/igt-gpu-tools/"$test" --list-subtests || true) + + if [ -z "$output" ]; then + echo "$test" + else + echo "$output" | while read -r subtest; do + echo "$test@$subtest" + done + fi + done + done < /igt/libexec/igt-gpu-tools/test-list.txt > /igt/libexec/igt-gpu-tools/ci-testlist.txt + set -x +} + +git clone https://gitlab.freedesktop.org/drm/igt-gpu-tools.git --single-branch --no-checkout +cd igt-gpu-tools +git checkout $IGT_VERSION + +if [[ "$KERNEL_ARCH" = "arm" ]]; then + . ../.gitlab-ci/container/create-cross-file.sh armhf + EXTRA_MESON_ARGS="--cross-file /cross_file-armhf.txt" +fi + +MESON_OPTIONS="-Doverlay=disabled \ + -Dchamelium=disabled \ + -Dvalgrind=disabled \ + -Dman=enabled \ + -Dtests=enabled \ + -Drunner=enabled \ + -Dlibunwind=enabled \ + -Dprefix=/igt" + +if [[ "$KERNEL_ARCH" = "arm64" ]] || [[ "$KERNEL_ARCH" = "arm" ]]; then + MESON_OPTIONS="$MESON_OPTIONS -Dxe_driver=disabled" +fi + +mkdir -p /igt +meson build $MESON_OPTIONS $EXTRA_MESON_ARGS +ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1 +ninja -C build install + +if [[ "$KERNEL_ARCH" = "arm64" ]]; then + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/igt/lib/aarch64-linux-gnu +elif [[ "$KERNEL_ARCH" = "arm" ]]; then + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/igt/lib +else + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/igt/lib64 +fi + +echo "Generating ci-testlist.txt" +generate_testlist + +mkdir -p artifacts/ +tar -cf artifacts/igt.tar /igt + +# Pass needed files to the test stage +S3_ARTIFACT_NAME="igt.tar.gz" +gzip -c artifacts/igt.tar > ${S3_ARTIFACT_NAME} +ci-fairy s3cp --token-file "${S3_JWT_FILE}" ${S3_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${KERNEL_ARCH}/${S3_ARTIFACT_NAME} |
