1#!/usr/bin/env bash 2# shellcheck disable=SC2086 # we want word splitting 3 4# When changing this file, you need to bump the following 5# .gitlab-ci/image-tags.yml tags: 6# DEBIAN_TEST_ANDROID_TAG 7# DEBIAN_BASE_TAG 8# KERNEL_ROOTFS_TAG 9 10set -uex 11 12uncollapsed_section_start deqp-runner "Building deqp-runner" 13 14DEQP_RUNNER_VERSION=0.20.2 15 16commits_to_backport=( 17) 18 19patch_files=( 20) 21 22DEQP_RUNNER_GIT_URL="${DEQP_RUNNER_GIT_URL:-https://gitlab.freedesktop.org/mesa/deqp-runner.git}" 23 24if [ -n "${DEQP_RUNNER_GIT_TAG:-}" ]; then 25 DEQP_RUNNER_GIT_CHECKOUT="$DEQP_RUNNER_GIT_TAG" 26elif [ -n "${DEQP_RUNNER_GIT_REV:-}" ]; then 27 DEQP_RUNNER_GIT_CHECKOUT="$DEQP_RUNNER_GIT_REV" 28else 29 DEQP_RUNNER_GIT_CHECKOUT="v$DEQP_RUNNER_VERSION" 30fi 31 32BASE_PWD=$PWD 33 34mkdir -p /deqp-runner 35pushd /deqp-runner 36mkdir deqp-runner-git 37pushd deqp-runner-git 38git init 39git remote add origin "$DEQP_RUNNER_GIT_URL" 40git fetch --depth 1 origin "$DEQP_RUNNER_GIT_CHECKOUT" 41git checkout FETCH_HEAD 42 43for commit in "${commits_to_backport[@]}" 44do 45 PATCH_URL="https://gitlab.freedesktop.org/mesa/deqp-runner/-/commit/$commit.patch" 46 echo "Backport deqp-runner commit $commit from $PATCH_URL" 47 curl -L --retry 4 -f --retry-all-errors --retry-delay 60 $PATCH_URL | git am 48done 49 50for patch in "${patch_files[@]}" 51do 52 echo "Apply patch to deqp-runner from $patch" 53 git am "$BASE_PWD/.gitlab-ci/container/patches/$patch" 54done 55 56if [ -z "${RUST_TARGET:-}" ]; then 57 RUST_TARGET="" 58fi 59 60if [[ "$RUST_TARGET" != *-android ]]; then 61 # When CC (/usr/lib/ccache/gcc) variable is set, the rust compiler uses 62 # this variable when cross-compiling arm32 and build fails for zsys-sys. 63 # So unset the CC variable when cross-compiling for arm32. 64 SAVEDCC=${CC:-} 65 if [ "$RUST_TARGET" = "armv7-unknown-linux-gnueabihf" ]; then 66 unset CC 67 fi 68 cargo install --locked \ 69 -j ${FDO_CI_CONCURRENT:-4} \ 70 --root /usr/local \ 71 ${EXTRA_CARGO_ARGS:-} \ 72 --path . 73 CC=$SAVEDCC 74else 75 cargo install --locked \ 76 -j ${FDO_CI_CONCURRENT:-4} \ 77 --root /usr/local --version 2.10.0 \ 78 cargo-ndk 79 80 rustup target add $RUST_TARGET 81 RUSTFLAGS='-C target-feature=+crt-static' cargo ndk --target $RUST_TARGET build --release 82 83 mv target/$RUST_TARGET/release/deqp-runner /deqp-runner 84 85 cargo uninstall --locked \ 86 --root /usr/local \ 87 cargo-ndk 88fi 89 90popd 91rm -rf deqp-runner-git 92popd 93 94# remove unused test runners to shrink images for the Mesa CI build (not kernel, 95# which chooses its own deqp branch) 96if [ -z "${DEQP_RUNNER_GIT_TAG:-}${DEQP_RUNNER_GIT_REV:-}" ]; then 97 rm -f /usr/local/bin/igt-runner 98fi 99 100section_end deqp-runner 101