• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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