fix(ci): use printf для commit/MR description avoiding YAML literal block break

Pipeline 6815 failed instantly с 'could not find expected : at line 625'
— multi-line shell strings внутри script: - | литерального блока YAML
ломали parser потому что continuation lines не были indented к уровню
блока (lines 625, 627-629 в column 0 — YAML видел их как new key).

Fix: собрать message строкой через printf '%b' с явными \n. Однострочные
shell variables — YAML парсит без проблем независимо от содержимого
внутри quotes.
This commit is contained in:
Zimin A.N.
2026-05-13 00:24:33 +03:00
parent 02591466cc
commit cac6b6a981
+6 -25
View File
@@ -619,35 +619,16 @@ propose-prod-image-bump:
fi
# 4. Commit + push branch.
# printf '%b' разворачивает \n в реальные newlines внутри одной shell
# строки — избегаем multi-line YAML quoting issues (literal block scalar
# ломается на unindented continuation lines).
git add charts/ordinis/values-prod.yaml
git commit -m "chore(release): bump prod image к ${IMAGE_TAG}
Auto-generated ordinis-CI release pipeline.
Source: ${CI_PROJECT_URL}/-/commit/${CI_COMMIT_SHA}
Pipeline: ${CI_PIPELINE_URL}
Tag: ${VERSION}
"
COMMIT_MSG=$(printf '%b' "chore(release): bump prod image к ${IMAGE_TAG}\n\nAuto-generated ordinis-CI release pipeline.\n\nSource: ${CI_PROJECT_URL}/-/commit/${CI_COMMIT_SHA}\nPipeline: ${CI_PIPELINE_URL}\nTag: ${VERSION}")
git commit -m "$COMMIT_MSG"
git push origin "$BRANCH"
# 5. Create MR через GitLab API.
# description через --data-urlencode сохраняет переносы строк.
MR_DESC="Auto-generated ordinis CI release pipeline после semantic-release ${VERSION}.
**Что меняется:** \`image.tag\` в \`charts/ordinis/values-prod.yaml\` → \`${IMAGE_TAG}\` (immutable SHA tag, гарантирует что ноды pull'нут именно этот digest).
**Source:**
- Ordinis commit: ${CI_PROJECT_URL}/-/commit/${CI_COMMIT_SHA}
- Tag pipeline: ${CI_PIPELINE_URL}
**Deploy после merge:** infra-pipeline auto-катит helm upgrade в \`ordinis-prod\` namespace через manual-gated \`deploy-prod\` job (как обычно).
**Verify checklist:**
- [ ] CI 'helm-lint' pipeline зелёный (validate charts)
- [ ] После merge play 'deploy-prod' job
- [ ] \`curl /api/v1/version\` показывает \`commit: ${CI_COMMIT_SHORT_SHA}\` и \`tag: ${VERSION}\`
- [ ] Pods Running 2/2 на обоих writer replicas
- [ ] Все 5 deployment'ов на одном digest (no split-brain)"
MR_DESC=$(printf '%b' "Auto-generated ordinis CI release pipeline после semantic-release ${VERSION}.\n\n**Что меняется:** \`image.tag\` в \`charts/ordinis/values-prod.yaml\` → \`${IMAGE_TAG}\` (immutable SHA tag, гарантирует что ноды pull'нут именно этот digest).\n\n**Source:**\n- Ordinis commit: ${CI_PROJECT_URL}/-/commit/${CI_COMMIT_SHA}\n- Tag pipeline: ${CI_PIPELINE_URL}\n\n**Deploy после merge:** infra-pipeline auto-катит helm upgrade в \`ordinis-prod\` namespace через manual-gated \`deploy-prod\` job (как обычно).\n\n**Verify checklist:**\n- [ ] CI 'helm-lint' pipeline зелёный (validate charts)\n- [ ] После merge play 'deploy-prod' job\n- [ ] \`curl /api/v1/version\` показывает \`commit: ${CI_COMMIT_SHORT_SHA}\` и \`tag: ${VERSION}\`\n- [ ] Pods Running 2/2 на обоих writer replicas\n- [ ] Все 5 deployment'ов на одном digest (no split-brain)")
curl -sS --fail \
--request POST \