From 29f99f058b6a023c916991b8ebb569a55228de6a Mon Sep 17 00:00:00 2001 From: "Zimin A.N." Date: Fri, 8 May 2026 09:29:45 +0300 Subject: [PATCH] =?UTF-8?q?fix(ci):=20=D0=BF=D0=B5=D1=80=D0=B5=D1=81=D0=BE?= =?UTF-8?q?=D0=B1=D0=B8=D1=80=D0=B0=D1=82=D1=8C=20docker-docs=20=D0=BD?= =?UTF-8?q?=D0=B0=20tag-pipeline=20+=20=D0=BE=D1=82=D0=BA=D0=B0=D1=82=20ma?= =?UTF-8?q?in-=20hack?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Логика: - maven-package + docker-app/read-api/projection-writer/migrations/admin-ui не имеют `rules:` → запускаются на любом pipeline (tag тоже). Они пушат "v1-0-X-" + ":latest" + ":" — образы доступны. - docker-docs имеет явные rules только на main+changes / web → на tag pipeline НЕ срабатывал → docs image "v1-0-X-" не пушился → helm на проде получал ImagePullBackOff. Фикс: 1. docker-docs: добавил правило `if: $CI_COMMIT_TAG =~ /^vX.Y.Z$/`. 2. resolve-tag: откатил main- костыль — теперь снова просто $IMAGE_TAG, который на tag-pipeline валидно резолвится в v1-0-X-. --- .gitlab-ci.yml | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d5ae925..089b2ce 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -238,6 +238,10 @@ docker-docs: rules: - if: '$CI_COMMIT_BRANCH == "main"' changes: *docs-changes + # На tag-pipeline backend images собираются всегда (maven-package + # + docker-* без rules). docs тоже надо пересобрать чтобы helm + # подтянул `v1-0-X-` тег docs image на проде. + - if: '$CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+$/' - if: '$CI_PIPELINE_SOURCE == "web"' when: manual @@ -251,20 +255,11 @@ resolve-tag: stage: trigger-deploy image: repo.nstart.cloud/library/alpine:3.20 script: - # На tag-pipeline docker-* jobs не запускаются (rules только на main/MR/web). - # Образы уже опубликованы при push в main как `main-`. Тег указывает - # на тот же commit, поэтому SHORT_SHA совпадает — резолвим в main-. - - | - if [ -n "$CI_COMMIT_TAG" ]; then - RESOLVED="main-$CI_COMMIT_SHORT_SHA" - else - RESOLVED="$IMAGE_TAG" - fi - - echo "RESOLVED_IMAGE_TAG=$RESOLVED" > resolved.env + - echo "RESOLVED_IMAGE_TAG=$IMAGE_TAG" > resolved.env # DOCS_IMAGE_TAG может быть пустым если docker-docs не пересобирался # (path-filter no-match). Helm в infra оставит старый tag через # --reset-then-reuse-values если переменная пустая. - - echo "RESOLVED_DOCS_TAG=$RESOLVED" >> resolved.env + - echo "RESOLVED_DOCS_TAG=$IMAGE_TAG" >> resolved.env - cat resolved.env artifacts: reports: