fix(ci): пересобирать docker-docs на tag-pipeline + откат main-<sha> hack
Логика: - maven-package + docker-app/read-api/projection-writer/migrations/admin-ui не имеют `rules:` → запускаются на любом pipeline (tag тоже). Они пушат "v1-0-X-<sha>" + ":latest" + ":<branch_or_tag>" — образы доступны. - docker-docs имеет явные rules только на main+changes / web → на tag pipeline НЕ срабатывал → docs image "v1-0-X-<sha>" не пушился → helm на проде получал ImagePullBackOff. Фикс: 1. docker-docs: добавил правило `if: $CI_COMMIT_TAG =~ /^vX.Y.Z$/`. 2. resolve-tag: откатил main-<sha> костыль — теперь снова просто $IMAGE_TAG, который на tag-pipeline валидно резолвится в v1-0-X-<sha>.
This commit is contained in:
+6
-11
@@ -238,6 +238,10 @@ docker-docs:
|
|||||||
rules:
|
rules:
|
||||||
- if: '$CI_COMMIT_BRANCH == "main"'
|
- if: '$CI_COMMIT_BRANCH == "main"'
|
||||||
changes: *docs-changes
|
changes: *docs-changes
|
||||||
|
# На tag-pipeline backend images собираются всегда (maven-package
|
||||||
|
# + docker-* без rules). docs тоже надо пересобрать чтобы helm
|
||||||
|
# подтянул `v1-0-X-<sha>` тег docs image на проде.
|
||||||
|
- if: '$CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+$/'
|
||||||
- if: '$CI_PIPELINE_SOURCE == "web"'
|
- if: '$CI_PIPELINE_SOURCE == "web"'
|
||||||
when: manual
|
when: manual
|
||||||
|
|
||||||
@@ -251,20 +255,11 @@ resolve-tag:
|
|||||||
stage: trigger-deploy
|
stage: trigger-deploy
|
||||||
image: repo.nstart.cloud/library/alpine:3.20
|
image: repo.nstart.cloud/library/alpine:3.20
|
||||||
script:
|
script:
|
||||||
# На tag-pipeline docker-* jobs не запускаются (rules только на main/MR/web).
|
- echo "RESOLVED_IMAGE_TAG=$IMAGE_TAG" > resolved.env
|
||||||
# Образы уже опубликованы при push в main как `main-<sha>`. Тег указывает
|
|
||||||
# на тот же commit, поэтому SHORT_SHA совпадает — резолвим в main-<sha>.
|
|
||||||
- |
|
|
||||||
if [ -n "$CI_COMMIT_TAG" ]; then
|
|
||||||
RESOLVED="main-$CI_COMMIT_SHORT_SHA"
|
|
||||||
else
|
|
||||||
RESOLVED="$IMAGE_TAG"
|
|
||||||
fi
|
|
||||||
- echo "RESOLVED_IMAGE_TAG=$RESOLVED" > resolved.env
|
|
||||||
# DOCS_IMAGE_TAG может быть пустым если docker-docs не пересобирался
|
# DOCS_IMAGE_TAG может быть пустым если docker-docs не пересобирался
|
||||||
# (path-filter no-match). Helm в infra оставит старый tag через
|
# (path-filter no-match). Helm в infra оставит старый tag через
|
||||||
# --reset-then-reuse-values если переменная пустая.
|
# --reset-then-reuse-values если переменная пустая.
|
||||||
- echo "RESOLVED_DOCS_TAG=$RESOLVED" >> resolved.env
|
- echo "RESOLVED_DOCS_TAG=$IMAGE_TAG" >> resolved.env
|
||||||
- cat resolved.env
|
- cat resolved.env
|
||||||
artifacts:
|
artifacts:
|
||||||
reports:
|
reports:
|
||||||
|
|||||||
Reference in New Issue
Block a user