stages: - publish variables: DOCKER_BUILDKIT: "1" DEFAULT_IMAGE_REPO: swr.cn-north-1.myhuaweicloud.com/sino-bridge/sinocode-analytics PUSH_LATEST: "true" publish_on_runner: stage: publish tags: - base90 rules: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' when: manual - when: never script: - set -eu - docker --version - | if [ -z "${DOCKER_LOGIN_COMMAND:-}" ]; then echo "Set DOCKER_LOGIN_COMMAND when running the pipeline." exit 1 fi - sh -lc "$DOCKER_LOGIN_COMMAND" - | IMAGE_REPO="${IMAGE_REPO:-$DEFAULT_IMAGE_REPO}" IMAGE_TAG="${IMAGE_TAG:-$CI_COMMIT_SHORT_SHA}" IMAGE_REF="$IMAGE_REPO:$IMAGE_TAG" echo "Building $IMAGE_REF" docker build --pull -t "$IMAGE_REF" . docker push "$IMAGE_REF" if [ "${PUSH_LATEST:-true}" = "true" ]; then LATEST_REF="$IMAGE_REPO:latest" docker tag "$IMAGE_REF" "$LATEST_REF" docker push "$LATEST_REF" fi echo "Published $IMAGE_REF"