mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-08 13:36:58 +02:00
The nightly SDK builds can be used as source for binary packages for the SDK chroot which helps to reduce local build times. Add support for resolving the latest nightly SDK in the set_version script the same way as resolving board nightly builds.
106 lines
4.6 KiB
Bash
Executable File
106 lines
4.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
DEFAULT_BASE_URL="https://storage.googleapis.com/flatcar-jenkins"
|
|
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.
|
|
"
|
|
exit 1
|
|
fi
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
ARG="$1"
|
|
shift
|
|
case "${ARG}" in
|
|
--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}"
|