diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a8ecb85..9b14acf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -625,9 +625,22 @@ release: # рассинхронизирован с filesystem (claims old version, only newer files exist). # v3.20 mirror consistent, apk add работает. См. ci/apk-update-fix история. image: repo.nstart.cloud/library/node:22-alpine3.20 + # Раньше `needs: trigger-deploy-staging` блокировал release когда staging + # deploy hang'ался (helm pending-upgrade cascade — каждый retry оставлял + # stuck revision, helm wait timeout 15m → rollback → next pipeline стартует + # с new pending). Release job skipped → tag не создаётся → prod не катит. + # MR !290 / !291 / !292 / !294 застряли в "merged but no release". + # + # Убираем dep: release runs независимо от staging health. Tag создаётся, + # tag pipeline → retag images → infra auto-bump → deploy-prod катит + # через MR !95 fallback (image.tag из values.yaml). + # + # Trade-off: staging может оставаться на старой версии если deploy hang'ает. + # Это OK — staging это testing env, prod важнее. Manual staging recovery + # через helm rollback + delete pending secrets когда нужно. needs: - - job: trigger-deploy-staging - artifacts: false + - job: resolve-tag + artifacts: true rules: - if: '$CI_COMMIT_BRANCH == "main"' when: on_success