47 lines
1.6 KiB
Bash
Executable file
47 lines
1.6 KiB
Bash
Executable file
#!/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
|