66 lines
1.5 KiB
Bash
66 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
required_vars=(
|
|
BRANCH_NAME
|
|
COMMIT_SHA
|
|
REGISTRY_HOST
|
|
REGISTRY_USERNAME
|
|
REGISTRY_PASSWORD
|
|
)
|
|
|
|
for var_name in "${required_vars[@]}"; do
|
|
if [[ -z "${!var_name:-}" ]]; then
|
|
echo "Missing required environment variable: ${var_name}" >&2
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
short_sha="${COMMIT_SHA:0:7}"
|
|
|
|
case "${BRANCH_NAME}" in
|
|
dev)
|
|
mutable_tag="dev-latest"
|
|
immutable_tag="dev-${short_sha}"
|
|
;;
|
|
release)
|
|
mutable_tag="rc-release"
|
|
immutable_tag="rc-${short_sha}"
|
|
;;
|
|
release/*)
|
|
release_name="${BRANCH_NAME#release/}"
|
|
release_slug="${release_name//\//-}"
|
|
mutable_tag="rc-${release_slug}"
|
|
immutable_tag="rc-${short_sha}"
|
|
;;
|
|
main)
|
|
mutable_tag="latest"
|
|
immutable_tag="sha-${short_sha}"
|
|
;;
|
|
*)
|
|
echo "Unsupported branch for publishing: ${BRANCH_NAME}" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
backend_image="${REGISTRY_HOST}/ctms/ctms-backend"
|
|
frontend_image="${REGISTRY_HOST}/ctms/ctms-frontend"
|
|
|
|
echo "${REGISTRY_PASSWORD}" | docker login "${REGISTRY_HOST}" --username "${REGISTRY_USERNAME}" --password-stdin
|
|
|
|
docker build \
|
|
-t "${backend_image}:${mutable_tag}" \
|
|
-t "${backend_image}:${immutable_tag}" \
|
|
./backend
|
|
|
|
docker build \
|
|
-t "${frontend_image}:${mutable_tag}" \
|
|
-t "${frontend_image}:${immutable_tag}" \
|
|
./frontend
|
|
|
|
docker push "${backend_image}:${mutable_tag}"
|
|
docker push "${backend_image}:${immutable_tag}"
|
|
docker push "${frontend_image}:${mutable_tag}"
|
|
docker push "${frontend_image}:${immutable_tag}"
|