ci(lint): только MR pipeline'ах, не branch-push
Branch-push pipeline сканировал HEAD~10..HEAD range — включал исторические
commit'ы (например b7e1f12 из MR !154 который сам и привёл к появлению
этого lint'а) → false fail на legacy commits которые уже в main.
MR pipeline использует CI_MERGE_REQUEST_DIFF_BASE_SHA..HEAD — только новые
commit'ы данного MR'а. Это правильный gate: contributor opens MR → lint
валидирует только новый код → fail/pass без noise от старого.
Pipeline 6833 (branch ci/forbid-skip-ci-literal) демонстрирует проблему —
поймал historical commit вместо проверки нашего MR-fix'а.
Pipeline 6834 (MR !155) прошёл — это правильное поведение.
This commit is contained in:
+8
-4
@@ -153,11 +153,15 @@ commit-msg-lint:
|
|||||||
echo ""
|
echo ""
|
||||||
echo "All commits clean."
|
echo "All commits clean."
|
||||||
rules:
|
rules:
|
||||||
# Запускается на MR pipeline'ах и на push в feature branch'ах. На main +
|
# Запускается ТОЛЬКО на MR pipeline'ах. Branch-push pipeline'ы скипаем
|
||||||
# tag — не нужно (если что-то прошло в main, поздно валидировать; на tag
|
# потому что HEAD~10 range пикапит historical commits (e.g. b7e1f12 из
|
||||||
# хотим minimal pipeline overhead).
|
# MR !154 — он сам и привёл к созданию этого lint job'а), false-fail'ит
|
||||||
|
# на legitimately-bad legacy commits которые уже в main.
|
||||||
|
#
|
||||||
|
# MR pipeline использует CI_MERGE_REQUEST_DIFF_BASE_SHA..HEAD range —
|
||||||
|
# сканит только новые commit'ы данного MR'а. Это правильный gate:
|
||||||
|
# contributor открывает MR → lint валидирует → fail/pass.
|
||||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||||
- if: '$CI_COMMIT_BRANCH != "main" && $CI_COMMIT_TAG == null'
|
|
||||||
|
|
||||||
# ─── TEST ──────────────────────────────────────
|
# ─── TEST ──────────────────────────────────────
|
||||||
maven-test:
|
maven-test:
|
||||||
|
|||||||
Reference in New Issue
Block a user