mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
ci: ревьюер не перегоняет зелёные гейты, локальный набор перед пушем
Ревьюер гонял tsc, юниты и сборку заново в каждом раунде, хотя Validate на том же SHA уже зелёный. Промпт прямо это требовал. Теперь шаг `validated` спрашивает у Validate состояние ровно этого SHA, и доказательство такое же строгое, как у reuse-маркеров (#208): не «недавно было зелено», а completed success на этом коммите. После ребейза SHA другой, прогона для него нет — ревьюер честно гоняет сам, и промпт это говорит. Что Validate не покрывает, в примечании названо отдельно: смоки по диффу, golden при правке рендера, инварианты на конкретной конфигурации. Иначе экономия превратилась бы в «CI зелёный, значит всё проверено». scripts/pre-push-gate.mjs — локальный набор: tsc, юниты, смоки по диффу (smoke-select), мутанты по диффу (mutation-gate --changed). Замер на реальном диапазоне 953f675~1..953f675: 46 секунд на всё вместе с двумя смоками. Три свойства, без которых набор бесполезен: не останавливается на первом упавшем; громко перечисляет, чего не проверял; не претендует на полноту. Бандл не собирает — раскладывает закоммиченный dist, а свежесть проверяет сам продукт через assertFreshDemoBundle внутри смока. В хуке выключен по умолчанию: 20-45 секунд на каждый пуш, включая пуш одной строки документации, — цена осознанная, включается HP_PREPUSH_GATE=1. Дельта-промпт для spec-ревью (пункт 2) уже существует: блок «объём разбора по дельте» из #214 покрывает оба этапа и прямо называет «дифф файла ТЗ или тела issue для spec». Ничего не добавлял. Issue: #343 User-Visible: no
This commit is contained in:
@@ -31,6 +31,16 @@ fi
|
||||
|
||||
status=0
|
||||
|
||||
# Локальный набор гейтов (#343). Выключен по умолчанию намеренно: 20-45 секунд на
|
||||
# каждый пуш, включая пуши одной строки документации, — цена, которую стоит
|
||||
# платить осознанно. Документация: docs/TESTING.md.
|
||||
if [ "${HP_PREPUSH_GATE:-}" = "1" ] && [ -f "$repo_root/scripts/pre-push-gate.mjs" ]; then
|
||||
echo "pre-push-gate: HP_PREPUSH_GATE=1, прогоняю локальный набор" >&2
|
||||
if ! node "$repo_root/scripts/pre-push-gate.mjs" >&2; then
|
||||
status=1
|
||||
fi
|
||||
fi
|
||||
|
||||
while read -r local_ref local_sha remote_ref remote_sha; do
|
||||
# Deleting a remote branch pushes nothing to examine.
|
||||
if [ "$local_sha" = "$zero" ]; then
|
||||
|
||||
Reference in New Issue
Block a user