fix(ci): retag — фиксированный 8-char short-SHA вместо git %h
Docker push в main pipeline тегирует образ как main-${CI_COMMIT_SHORT_SHA}
(GitLab гарантирует 8 chars). Retag в tag pipeline получал PARENT_SHA
через `git log -1 --format=%h HEAD~1` — а %h динамически растягивает
abbrev (8 → 9 chars) когда git детектит SHA-коллизию в локальном clone'е.
При расхождении retag тянет main-3d3a03ab9 → "failed to resolve
reference ... not found" → retag job failed → commit-prod-image-bump
skipped (через needs:) → v2.41.3 (MR !261) попала на эту race.
Часть retag-* выживала только потому что на их runner'е clone оказался
shallower и %h дал 8 chars; параллельные jobs получали 9 → fail.
Заменил на `git rev-parse HEAD~1 | cut -c1-8` — гарантированно 8 chars,
матчится с CI_COMMIT_SHORT_SHA в docker pipeline.
This commit is contained in:
+9
-1
@@ -481,7 +481,15 @@ docker-docs:
|
|||||||
- for i in $(seq 1 30); do docker info >/dev/null 2>&1 && break; sleep 1; done
|
- for i in $(seq 1 30); do docker info >/dev/null 2>&1 && break; sleep 1; done
|
||||||
- echo "$REGISTRY_PASSWORD" | docker login "$REGISTRY" -u "$REGISTRY_USER" --password-stdin
|
- echo "$REGISTRY_PASSWORD" | docker login "$REGISTRY" -u "$REGISTRY_USER" --password-stdin
|
||||||
- IMG="$REGISTRY/$IMAGE_REPO/$SVC"
|
- IMG="$REGISTRY/$IMAGE_REPO/$SVC"
|
||||||
- PARENT_SHA=$(git log -1 --format=%h HEAD~1)
|
# `git log %h` динамически растягивает abbrev (8 → 9 chars) когда git
|
||||||
|
# детектит SHA-коллизию в локальном clone'е. Docker push в main pipeline
|
||||||
|
# использует CI_COMMIT_SHORT_SHA (фиксированно 8 chars per GitLab spec),
|
||||||
|
# поэтому при mismatch'е retag не находит main-<9chars> образ →
|
||||||
|
# "failed to resolve reference ... not found" → job failed, и за ним
|
||||||
|
# commit-prod-image-bump skipped. v2.41.3 (MR !261) попал на эту race.
|
||||||
|
# Используем rev-parse + cut чтобы гарантировать 8 chars независимо
|
||||||
|
# от состояния clone'а.
|
||||||
|
- PARENT_SHA=$(git rev-parse HEAD~1 | cut -c1-8)
|
||||||
- SRC="$IMG:main-$PARENT_SHA"
|
- SRC="$IMG:main-$PARENT_SHA"
|
||||||
- echo "Re-tag $SRC → $IMG:$IMAGE_TAG (+ :latest, :$CI_COMMIT_REF_SLUG)"
|
- echo "Re-tag $SRC → $IMG:$IMAGE_TAG (+ :latest, :$CI_COMMIT_REF_SLUG)"
|
||||||
- docker pull "$SRC"
|
- docker pull "$SRC"
|
||||||
|
|||||||
Reference in New Issue
Block a user