diff --git a/.travis.yml b/.travis.yml index 484a947..2dac8f3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,12 @@ sudo: required language: python +env: + - BUILD=release + - BUILD=prerelease + - BUILD=branches + - BUILD=special + git: depth: 5 diff --git a/build-all.sh b/build-all.sh index dcff779..9961f92 100755 --- a/build-all.sh +++ b/build-all.sh @@ -1,5 +1,16 @@ #!/bin/bash # Builds all Docker images this project provides +# Arguments: +# BUILD: The release to build. +# Allowed: release, prerelease, branches, special +# Default: undefined + +echo "▶️ $0 $*" + +ALL_BUILDS=("release" "prerelease" "branches" "special") +BUILDS=("${BUILD:-"${ALL_BUILDS[@]}"}") + +echo "⚙️ Configured builds: ${BUILDS[*]}" VARIANTS=("" "ldap") @@ -35,23 +46,40 @@ if [ ! -z "${DEBUG}" ] || \ fi fi - echo "🛠 Building '$DOCKERFILE'" + for BUILD in "${BUILDS[@]}"; do + echo "🛠 Building '$BUILD' from '$DOCKERFILE'" + case $BUILD in + release) + # build the latest release + # shellcheck disable=SC2068 + ./build-latest.sh $@ || ERROR=1 + ;; + prerelease) + # build the latest pre-release + # shellcheck disable=SC2068 + PRERELEASE=true ./build-latest.sh $@ || ERROR=1 + ;; + branches) + # build all branches + # shellcheck disable=SC2068 + ./build-branches.sh $@ || ERROR=1 + ;; + special) + # special build + # shellcheck disable=SC2068 + SRC_ORG=lampwins TAG=webhooks-backend ./build.sh "feature/webhooks-backend" $@ || ERROR=1 + ;; + *) + echo "🚨 Unrecognized build '$BUILD'." - # build the latest release - # shellcheck disable=SC2068 - ./build-latest.sh $@ || ERROR=1 - - # build the latest pre-release - # shellcheck disable=SC2068 - PRERELEASE=true ./build-latest.sh $@ || ERROR=1 - - # build all branches - # shellcheck disable=SC2068 - ./build-branches.sh $@ || ERROR=1 - - # special build - # shellcheck disable=SC2068 - SRC_ORG=lampwins TAG=webhooks-backend ./build.sh "feature/webhooks-backend" $@ || ERROR=1 + if [ -z "$DEBUG" ]; then + exit 1 + else + echo "⚠️ Would exit here with code '1', but DEBUG is enabled." + fi + ;; + esac + done done else echo "❎ Not building anything." diff --git a/build-branches.sh b/build-branches.sh index 0e28363..36c55d7 100755 --- a/build-branches.sh +++ b/build-branches.sh @@ -1,5 +1,7 @@ #!/bin/bash -# Builds all published branches +# Builds develop, develop-* and master branches + +echo "▶️ $0 $*" ORIGINAL_GITHUB_REPO="digitalocean/netbox" GITHUB_REPO="${GITHUB_REPO-$ORIGINAL_GITHUB_REPO}" @@ -7,7 +9,7 @@ URL_RELEASES="https://api.github.com/repos/${GITHUB_REPO}/branches" CURL="curl -sS" -BRANCHES=$($CURL "${URL_RELEASES}" | jq -r 'map(.name) | .[] | scan("^[^v].+")') +BRANCHES=$($CURL "${URL_RELEASES}" | jq -r 'map(.name) | .[] | scan("^[^v].+") | match("^(master|develop).*") | .string') ERROR=0 diff --git a/build-latest.sh b/build-latest.sh index bebe554..e996251 100755 --- a/build-latest.sh +++ b/build-latest.sh @@ -1,6 +1,8 @@ #!/bin/bash # Builds the latest released version +echo "▶️ $0 $*" + ORIGINAL_GITHUB_REPO="digitalocean/netbox" GITHUB_REPO="${GITHUB_REPO-$ORIGINAL_GITHUB_REPO}" URL_RELEASES="https://api.github.com/repos/${GITHUB_REPO}/releases" diff --git a/build.sh b/build.sh index f28532a..ecd680d 100755 --- a/build.sh +++ b/build.sh @@ -1,6 +1,8 @@ #!/bin/bash # Builds the Dockerfile[.variant] and injects tgz'ed Netbox code from Github +echo "▶️ $0 $*" + set -e if [ "${1}x" == "x" ] || [ "${1}" == "--help" ] || [ "${1}" == "-h" ]; then