fixed promote-tag-mirror v5
Some checks failed
ci/woodpecker/manual/woodpecker Pipeline failed

This commit is contained in:
Josh 2025-09-12 15:55:22 +00:00
parent 3b7d64638e
commit d1a04d8845

View File

@ -11,7 +11,7 @@ steps:
- -lc - -lc
- | - |
set -euo pipefail set -euo pipefail
if [ "${PROMOTE:-}" != "prod" ]; then echo "⏭ Skipping (PROMOTE=$PROMOTE)"; exit 0; fi if [ "${PROMOTE:-}" != "prod" ]; then echo "⏭ Skipping (PROMOTE=$PROMOTE)"; exit 0; fi
IMG_TAG="$(gcloud secrets versions access latest --secret=IMG_TAG --project=aptivaai-dev)" IMG_TAG="$(gcloud secrets versions access latest --secret=IMG_TAG --project=aptivaai-dev)"
SRC="us-central1-docker.pkg.dev/aptivaai-dev/aptiva-repo" SRC="us-central1-docker.pkg.dev/aptivaai-dev/aptiva-repo"
@ -21,20 +21,20 @@ steps:
apt-get update -qq && apt-get install -y -qq skopeo apt-get update -qq && apt-get install -y -qq skopeo
TOKEN="$(gcloud auth print-access-token)" TOKEN="$(gcloud auth print-access-token)"
# check which images are missing in PROD # Check which images are already in PROD; no arrays to avoid bad-substitution
missing=() MISSING=""
for s in server1 server2 server3 nginx; do for s in server1 server2 server3 nginx; do
REF="docker://$DST/$s:$IMG_TAG" REF="docker://$DST/$s:$IMG_TAG"
if ! skopeo inspect --creds "oauth2accesstoken:$TOKEN" "$REF" >/dev/null 2>&1; then if ! skopeo inspect --creds "oauth2accesstoken:$TOKEN" "$REF" >/dev/null 2>&1; then
missing+=("$s") MISSING="$MISSING $s"
fi fi
done done
if [ ${#missing[@]} -eq 0 ]; then if [ -z "$MISSING" ]; then
echo "✅ All images already present in PROD for :$IMG_TAG — skipping mirror" echo "✅ All images present in PROD for :$IMG_TAG — skipping mirror"
else else
echo "🔁 Mirroring ${missing[*]} to PROD…" echo "🔁 Mirroring to PROD: $MISSING"
for s in "${missing[@]}"; do for s in $MISSING; do
SRC_REF="docker://$SRC/$s:$IMG_TAG" SRC_REF="docker://$SRC/$s:$IMG_TAG"
DST_REF="docker://$DST/$s:$IMG_TAG" DST_REF="docker://$DST/$s:$IMG_TAG"
echo "copy $SRC_REF → $DST_REF" echo "copy $SRC_REF → $DST_REF"
@ -45,11 +45,9 @@ steps:
done done
fi fi
# publish tag to prod SM regardless
printf '%s' "$IMG_TAG" | gcloud secrets versions add IMG_TAG --data-file=- --project=aptivaai-prod >/dev/null printf '%s' "$IMG_TAG" | gcloud secrets versions add IMG_TAG --data-file=- --project=aptivaai-prod >/dev/null
echo "🏷 promoted IMG_TAG=$IMG_TAG" echo "🏷 promoted IMG_TAG=$IMG_TAG"
- name: verify-sync - name: verify-sync
depends_on: [promote-tag-and-mirror] depends_on: [promote-tag-and-mirror]
image: google/cloud-sdk:latest image: google/cloud-sdk:latest