83 lines
2.1 KiB
Bash
Executable File
83 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
ensure_jq() {
|
|
echo "🛠🛠🛠 Installing JQ via apt-get"
|
|
[ -x "$(command -v jq)" ] || ( apt-get update && apt-get install -y jq )
|
|
}
|
|
|
|
ensure_dockerfile_present() {
|
|
if [ "${VARIANT}" == "main" ]; then
|
|
DOCKERFILE="Dockerfile"
|
|
else
|
|
DOCKERFILE="Dockerfile.${VARIANT}"
|
|
|
|
# Fail fast
|
|
if [ ! -f "${DOCKERFILE}" ]; then
|
|
echo "🚨 The Dockerfile '${DOCKERFILE}' for variant '${VARIANT}' doesn't exist."
|
|
|
|
if [ -z "$DEBUG" ]; then
|
|
exit 1
|
|
else
|
|
echo "⚠️ Would skip this, but DEBUG is enabled."
|
|
fi
|
|
fi
|
|
|
|
if [ "${DOCKERFILE}" != "${DOCKERFILE_PATH}" ]; then
|
|
echo "⚠️ The specified Dockerfile '${DOCKERFILE_PATH}' does not match the expected Dockerfile '${DOCKERFILE}'."
|
|
echo " This script will use '${DOCKERFILE}' and ignore '${DOCKERFILE_PATH}'."
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Passes args to the scripts
|
|
run_build() {
|
|
echo "🐳🐳🐳 Building '${BUILD}' images, the '${VARIANT:-main}' variant"
|
|
case $BUILD in
|
|
release)
|
|
# build the latest release
|
|
# shellcheck disable=SC2068
|
|
./build-latest.sh $@
|
|
;;
|
|
prerelease)
|
|
# build the latest pre-release
|
|
# shellcheck disable=SC2068
|
|
PRERELEASE=true ./build-latest.sh $@
|
|
;;
|
|
branches)
|
|
# build all branches
|
|
# shellcheck disable=SC2068
|
|
./build-branches.sh $@
|
|
;;
|
|
special)
|
|
# special build
|
|
# shellcheck disable=SC2068
|
|
#SRC_ORG=lampwins TAG=webhooks-backend ./build.sh "feature/webhooks-backend" $@
|
|
echo "✅ No special builds today."
|
|
;;
|
|
*)
|
|
echo "🚨 Unrecognized build '$BUILD'."
|
|
|
|
if [ -z "$DEBUG" ]; then
|
|
exit 1
|
|
else
|
|
echo "⚠️ Would exit here with code '1', but DEBUG is enabled."
|
|
fi
|
|
;;
|
|
esac
|
|
}
|
|
|
|
echo "🤖🤖🤖 Preparing build"
|
|
export DOCKER_ORG="index.docker.io/netboxcommunity"
|
|
export DOCKER_REPO=netbox
|
|
export DOCKERHUB_REPO=netboxcommunity/netbox
|
|
|
|
# mis-using the "${DOCKER_TAG}" variable as "branch to build"
|
|
export BUILD="${DOCKER_TAG%-*}"
|
|
export VARIANT="${DOCKER_TAG#*-}"
|
|
|
|
unset DOCKER_TAG
|
|
|
|
ensure_dockerfile_present
|
|
|
|
ensure_jq
|