feat: automate tencent private registry publishing
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
#!/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"
|
||||
nginx_image="${REGISTRY_HOST}/ctms/ctms-nginx"
|
||||
|
||||
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 "${nginx_image}:${mutable_tag}" \
|
||||
-t "${nginx_image}:${immutable_tag}" \
|
||||
-f ./nginx/Dockerfile \
|
||||
.
|
||||
|
||||
docker push "${backend_image}:${mutable_tag}"
|
||||
docker push "${backend_image}:${immutable_tag}"
|
||||
docker push "${nginx_image}:${mutable_tag}"
|
||||
docker push "${nginx_image}:${immutable_tag}"
|
||||
Reference in New Issue
Block a user