summaryrefslogtreecommitdiffstats
path: root/src/ci/scripts/setup-environment.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
commit698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch)
tree173a775858bd501c378080a10dca74132f05bc50 /src/ci/scripts/setup-environment.sh
parentInitial commit. (diff)
downloadrustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz
rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/ci/scripts/setup-environment.sh')
-rwxr-xr-xsrc/ci/scripts/setup-environment.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/ci/scripts/setup-environment.sh b/src/ci/scripts/setup-environment.sh
new file mode 100755
index 000000000..0bc35f932
--- /dev/null
+++ b/src/ci/scripts/setup-environment.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+# This script guesses some environment variables based on the builder name and
+# the current platform, to reduce the amount of variables defined in the CI
+# configuration.
+
+set -euo pipefail
+IFS=$'\n\t'
+
+source "$(cd "$(dirname "$0")" && pwd)/../shared.sh"
+
+# Load extra environment variables
+vars="${EXTRA_VARIABLES-}"
+echo "${vars}" | jq '' >/dev/null # Validate JSON and exit on errors
+for key in $(echo "${vars}" | jq "keys[]" -r); do
+ # On Windows, for whatever reason, $key contains the BOM character in it,
+ # and that messes up `jq ".${key}"`. This line strips the BOM from the key.
+ #
+ # https://unix.stackexchange.com/a/381263
+ key="$(echo "${key}" | sed '1s/^\xEF\xBB\xBF//')"
+
+ echo "adding extra environment variable ${key}"
+ value="$(echo "${vars}" | jq ".${key}" -r)"
+ export "${key}"="${value}"
+ ciCommandSetEnv "${key}" "${value}"
+done
+
+# Builders starting with `dist-` are dist builders, but if they also end with
+# `-alt` they are alternate dist builders.
+if [[ "${CI_JOB_NAME}" = dist-* ]]; then
+ if [[ "${CI_JOB_NAME}" = *-alt ]]; then
+ echo "alternate dist builder detected, setting DEPLOY_ALT=1"
+ ciCommandSetEnv DEPLOY_ALT 1
+ else
+ echo "normal dist builder detected, setting DEPLOY=1"
+ ciCommandSetEnv DEPLOY 1
+ fi
+fi
+
+# All the Linux builds happen inside Docker.
+if isLinux; then
+ if [[ -z "${IMAGE+x}" ]]; then
+ echo "linux builder detected, using docker to run the build"
+ ciCommandSetEnv IMAGE "${CI_JOB_NAME}"
+ else
+ echo "a custom docker image is already set"
+ fi
+fi