mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-08 05:26:58 +02:00
Dev builds need to use the bucket cache instead of the release binary package mirror. Document how the user can select the bucket cache.
127 lines
5.5 KiB
Bash
Executable File
127 lines
5.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
DEFAULT_BASE_URL="https://mirror.release.flatcar-linux.net"
|
|
DEV_BOARD_URL="${DEFAULT_BASE_URL}/developer"
|
|
DEFAULT_SDK_URL="${DEFAULT_BASE_URL}/sdk"
|
|
DEV_SDK_URL="${DEFAULT_BASE_URL}/developer/sdk"
|
|
FILE=~/trunk/.repo/manifests/version.txt
|
|
FLATCAR_DEV_BUILDS_SDK=""
|
|
FLATCAR_SDK_VERSION=""
|
|
FLATCAR_DEV_BUILDS=""
|
|
FLATCAR_VERSION=""
|
|
FLATCAR_VERSION_ID=""
|
|
|
|
# To keep this script usable outside of the SDK chroot, do not include common.sh here.
|
|
|
|
if [[ $# = 0 ]] || [[ "$1" = "-h" ]] || [[ "$1" = "--help" ]]; then
|
|
echo "Updates ${FILE} with new values to specify which binary packages to use
|
|
Usage: $0 FLAGS...
|
|
--board-version (VERSION|BOARD/BRANCH-nightly): Set FLATCAR_VERSION=VERSION and
|
|
FLATCAR_VERSION_ID=VERSION where VERSION can
|
|
be resolved by looking up the latest build
|
|
referenced by
|
|
${DEV_BOARD_URL}/boards/BOARD/BRANCH-nightly.txt
|
|
where BRANCH can be flatcar-MAJOR for the maintenance
|
|
branch of a release with the version MAJOR.MINOR.PATCH,
|
|
or the Alpha/Edge development branch
|
|
--dev-board: Set FLATCAR_DEV_BUILDS=${DEV_BOARD_URL}
|
|
which also selects --dev-sdk unless you specify
|
|
--no-dev-sdk
|
|
--no-dev-board: Remove existing FLATCAR_DEV_BUILDS
|
|
--sdk-version (VERSION|sdk-BRANCH-nightly): Set FLATCAR_SDK_VERSION=VERSION where VERSION can
|
|
be resolved by looking up the latest SDK build
|
|
referenced by
|
|
${DEV_BOARD_URL}/sdk/amd64/sdk-BRANCH-nightly.txt
|
|
where BRANCH is currently only main, and requires
|
|
the --dev-sdk option if --no-dev-board is used
|
|
--dev-sdk: Set FLATCAR_DEV_BUILDS_SDK=${DEV_SDK_URL}
|
|
--no-dev-sdk: Use a release SDK even if --dev-board is specified
|
|
--file FILE: Modify another file than ${FILE}, useful if run
|
|
outside of the SDK chroot. If /dev/stdout or
|
|
/dev/stderr is used, only new values are printed.
|
|
--binhost Use a custom binhost (defaults to '${DEFAULT_BASE_URL}'),
|
|
e.g., 'https://bucket.release.flatcar-linux.net/flatcar-jenkins'.
|
|
This will update BOARD and SDK URLs accordingly.
|
|
"
|
|
exit 1
|
|
fi
|
|
|
|
# --binhost needs to be evaluated first since it impacts other variables set below
|
|
custom_binhost="false"
|
|
for arg in "${@}" ; do
|
|
if $custom_binhost; then
|
|
echo "Using custom binhost '${arg}'"
|
|
DEFAULT_BASE_URL="${arg}"
|
|
DEV_BOARD_URL="${DEFAULT_BASE_URL}/developer"
|
|
DEFAULT_SDK_URL="${DEFAULT_BASE_URL}/sdk"
|
|
DEV_SDK_URL="${DEFAULT_BASE_URL}/developer/sdk"
|
|
break
|
|
fi
|
|
if [ "$arg" = "--binhost" ] ; then
|
|
custom_binhost="true"
|
|
fi
|
|
done
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
ARG="$1"
|
|
shift
|
|
case "${ARG}" in
|
|
--binhost) # handled separately above, pass
|
|
shift;;
|
|
--board-version)
|
|
VAL="$1"
|
|
shift
|
|
if [[ "${VAL}" == */*-nightly ]]; then
|
|
VAL=$(curl -s -S -f -L "${DEV_BOARD_URL}/boards/${VAL}.txt")
|
|
fi
|
|
FLATCAR_VERSION="${VAL}"
|
|
FLATCAR_VERSION_ID="${VAL}"
|
|
;;
|
|
--dev-board)
|
|
FLATCAR_DEV_BUILDS="${DEV_BOARD_URL}"
|
|
;;
|
|
--no-dev-board)
|
|
FLATCAR_DEV_BUILDS=no
|
|
;;
|
|
--sdk-version)
|
|
FLATCAR_SDK_VERSION="$1"
|
|
if [[ "${FLATCAR_SDK_VERSION}" == sdk-*-nightly ]]; then
|
|
FLATCAR_SDK_VERSION=$(curl -s -S -f -L "${DEV_BOARD_URL}/sdk/amd64/${FLATCAR_SDK_VERSION}.txt")
|
|
fi
|
|
shift
|
|
;;
|
|
--dev-sdk)
|
|
FLATCAR_DEV_BUILDS_SDK="${DEV_SDK_URL}"
|
|
;;
|
|
--no-dev-sdk)
|
|
FLATCAR_DEV_BUILDS_SDK="${DEFAULT_SDK_URL}"
|
|
;;
|
|
--file)
|
|
FILE="$1"
|
|
shift
|
|
;;
|
|
*)
|
|
echo "Unkown argument ${ARG}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ "${FILE}" != "/dev/stdout" ]] && [[ "${FILE}" != "/dev/stderr" ]]; then
|
|
[[ -n "${FLATCAR_VERSION}" ]] && sed -i "/FLATCAR_VERSION=.*/d" "${FILE}"
|
|
[[ -n "${FLATCAR_VERSION_ID}" ]] && sed -i "/FLATCAR_VERSION_ID=.*/d" "${FILE}"
|
|
[[ -n "${FLATCAR_DEV_BUILDS}" ]] && sed -i "/FLATCAR_DEV_BUILDS=.*/d" "${FILE}"
|
|
[[ -n "${FLATCAR_SDK_VERSION}" ]] && sed -i "/FLATCAR_SDK_VERSION=.*/d" "${FILE}"
|
|
[[ -n "${FLATCAR_DEV_BUILDS_SDK}" ]] && sed -i "/FLATCAR_DEV_BUILDS_SDK=.*/d" "${FILE}"
|
|
fi
|
|
|
|
{
|
|
[[ -n "${FLATCAR_VERSION}" ]] && echo "FLATCAR_VERSION=${FLATCAR_VERSION}"
|
|
[[ -n "${FLATCAR_VERSION_ID}" ]] && echo "FLATCAR_VERSION_ID=${FLATCAR_VERSION_ID}"
|
|
[[ -n "${FLATCAR_DEV_BUILDS}" ]] && [[ "${FLATCAR_DEV_BUILDS}" != no ]] && echo "FLATCAR_DEV_BUILDS=${FLATCAR_DEV_BUILDS}"
|
|
[[ -n "${FLATCAR_SDK_VERSION}" ]] && echo "FLATCAR_SDK_VERSION=${FLATCAR_SDK_VERSION}"
|
|
[[ -n "${FLATCAR_DEV_BUILDS_SDK}" ]] && echo "FLATCAR_DEV_BUILDS_SDK=${FLATCAR_DEV_BUILDS_SDK}"
|
|
} >> "${FILE}"
|