mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
reviews-index: гейт свежести индекса — шаг Validate на push в dev, не юнит-тест (#635 r3, повтор)
Прогон 35870123732 на 49bae62e: тест «индекс свеж» покраснел на материале,
который конвейер сам же ребейзнул на dev (#614) — process.yml исполняется из
main и о `--commit-if-stale` ещё не знает; так красился бы любой раунд, пока
правка не отзеркалена, а на issue-ветках коммиты конвейера индекс ветки знать
не обязан. Свежесть судится там, где её держит конвейер: шаг preflight
`reviews-index --check` только на push в dev, в вердикте предполёта; skipped
не считается отказом. Юнит-тест байтовой свежести снят, вместо него — свидетель
на проводке. PROCESS.md §2.10: правка docs/reviews руками сопровождается
пересборкой в том же коммите. INDEX.md пересобран на текущем дереве.
Issue: #635
User-Visible: no
This commit is contained in:
@@ -92,6 +92,20 @@ jobs:
|
||||
echo "скриншоты документации: режим $mode"
|
||||
node scripts/check-docs.mjs --external --screenshots=$mode
|
||||
|
||||
# #635: `docs/reviews/INDEX.md` — снимок каталога ревью; расхождение с
|
||||
# каталогом — невидимые через индекс документы (r2 #635 H1). Гейт стоит
|
||||
# только на push в dev: там свежесть держит конвейер — пересборка при
|
||||
# публикации документа и после каждого своего ребейза (приведение к dev,
|
||||
# слияние кандидата). На issue-ветках не судится: их ребейзит и
|
||||
# публикует в них конвейер из ветки по умолчанию, и доехавший туда
|
||||
# документ раунда индекс ветки знать не обязан — красить автора за
|
||||
# коммит конвейера нельзя; расхождение излечивает слияние.
|
||||
- name: "Индекс ревью совпадает с каталогом docs/reviews"
|
||||
id: reviews_index
|
||||
if: github.event_name == 'push' && github.ref == 'refs/heads/dev'
|
||||
continue-on-error: true
|
||||
run: node scripts/reviews-index.mjs --dir=docs/reviews --check
|
||||
|
||||
# Конвейер читает `process.yml` из ветки по умолчанию, поэтому файл обязан
|
||||
# совпадать в `main` и `dev`. До этой проверки совпадение держалось на
|
||||
# дисциплине: каждая правка требовала двух пушей и ручной сверки.
|
||||
@@ -196,6 +210,7 @@ jobs:
|
||||
PROVENANCE: ${{ steps.provenance.outcome }}
|
||||
PROCESS_GATE: ${{ steps.process_gate.outcome }}
|
||||
ACTION_PINS: ${{ steps.action_pins.outcome }}
|
||||
REVIEWS_INDEX: ${{ steps.reviews_index.outcome }}
|
||||
run: |
|
||||
fail=0
|
||||
check() {
|
||||
@@ -213,6 +228,8 @@ jobs:
|
||||
check "провенанс коммитов" "$PROVENANCE"
|
||||
check "процессный гейт" "$PROCESS_GATE"
|
||||
check "пины сторонних Actions" "$ACTION_PINS"
|
||||
# skipped — шаг не судил (не push в dev), это не отказ
|
||||
[ "$REVIEWS_INDEX" = "skipped" ] || check "индекс ревью совпадает с каталогом" "$REVIEWS_INDEX"
|
||||
exit $fail
|
||||
|
||||
# Классификация изменённых путей: тяжёлые job идут только там, где менялось
|
||||
|
||||
Reference in New Issue
Block a user