38 lines
1.5 KiB
Bash
Executable File
38 lines
1.5 KiB
Bash
Executable File
set -a
|
|
|
|
CIRCLE_JOB="${CIRCLE_JOB:-}"
|
|
ARCH="${ARCH:-$CIRCLE_JOB}"
|
|
if [[ -z "$ARCH" ]] ; then
|
|
echo "Defaulting arch to amd64"
|
|
ARCH="amd64"
|
|
fi
|
|
BASE_IMAGE="${BASE_IMAGE:-${CIRCLE_PROJECT_REPONAME}}"
|
|
if [[ -z "$BASE_IMAGE" ]] ; then
|
|
echo "Defaulting image name to pihole"
|
|
BASE_IMAGE="pihole"
|
|
fi
|
|
|
|
# The docker image will match the github repo path by default but is overrideable with CircleCI environment
|
|
# BASE_IMAGE Overridable by Circle environment, including namespace (e.g. BASE_IMAGE=bobsmith/test-img:latest)
|
|
CIRCLE_PROJECT_USERNAME="${CIRCLE_PROJECT_USERNAME:-unset}"
|
|
HUB_NAMESPACE="${HUB_NAMESPACE:-$CIRCLE_PROJECT_USERNAME}"
|
|
[[ $CIRCLE_PROJECT_USERNAME == "pi-hole" ]] && HUB_NAMESPACE="pihole" # Custom mapping for namespace
|
|
[[ $BASE_IMAGE != *"/"* ]] && BASE_IMAGE="${HUB_NAMESPACE}/${BASE_IMAGE}" # If missing namespace, add one
|
|
|
|
# Secondary docker tag info (origin github branch/tag) will get prepended also
|
|
ARCH_IMAGE="$BASE_IMAGE"
|
|
[[ $ARCH_IMAGE != *":"* ]] && ARCH_IMAGE="${BASE_IMAGE}:$ARCH" # If tag missing, add circle job name as a tag (architecture here)
|
|
|
|
DOCKER_TAG="${CIRCLE_TAG:-$CIRCLE_BRANCH}"
|
|
if [[ -n "$DOCKER_TAG" ]]; then
|
|
# remove latest tag if used (as part of a user provided image variable)
|
|
ARCH_IMAGE="${ARCH_IMAGE/:latest/:}"
|
|
# Prepend the github tag(version) or branch. image:arch = image:v1.0-arch
|
|
ARCH_IMAGE="${ARCH_IMAGE/:/:${DOCKER_TAG}-}"
|
|
# latest- sometimes has a trailing slash, remove it
|
|
ARCH_IMAGE="${ARCH_IMAGE/%-/}"
|
|
fi
|
|
MULTIARCH_IMAGE="$BASE_IMAGE:$DOCKER_TAG"
|
|
|
|
set +a
|