mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
`ubuntu-latest` с 19.10.2026 переезжает на Ubuntu 26, а golden, скриншоты документации и перф-бюджеты сняты на текущем образе: все 43 job на раннере теперь явно на `ubuntu-24.04`, один образ на все workflow. 26 job получили `timeout-minutes` по наблюдённой длительности с запасом; гейт релиза — 180, больше суммы собственных ожиданий (60 + 60 + 45). Расписания ушли с круглых минут (ночь 02:17, мутанты 00:43, метрики 05:23, полный перф 04:11), ночь пишет в summary сдвиг старта и предупреждает, если он больше часа. test/workflow-hygiene.test.mjs держит все три правила по тексту workflow (разбор `parseJobSettings` в scripts/workflow-jobs.mjs) и исполняет шаг сдвига старта настоящим bash; порядок осознанного подъёма образа — docs/DEVELOPMENT.md. Issue: #658 User-Visible: no Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd
61 lines
3.5 KiB
YAML
61 lines
3.5 KiB
YAML
name: "Продолжение ревью после Validate · тело (#623)"
|
||
|
||
# #636. Стадия `prepare` конвейера (process.yml) больше не ждёт Validate с
|
||
# мутантами на материале внутри job — раннер спал ≈ 28 минут на раунд при
|
||
# 10–12 минутах работы модели. Она диспатчит прогон, кладёт запечатанный
|
||
# маркер `review-pending-…` и выходит. Этот workflow просыпается на завершение
|
||
# любого Validate и, если раунд ждал именно этот прогон (маркер на материале,
|
||
# метка S7 стоит, активного прогона конвейера нет), переставляет метку S7 —
|
||
# новый прогон `prepare` находит завершённый dispatch и продолжает раунд.
|
||
# Ничего не оценивает: зелёный/красный разбирает сам конвейер. Страховка на
|
||
# потерянное событие — process-reconcile.yml с тем же маркером.
|
||
#
|
||
# Для события `workflow_run` GitHub берёт workflow только из ветки по
|
||
# умолчанию (main). Там лежит тонкий `process-resume.yml`, который вызывает
|
||
# этот файл по ссылке `@dev` (#623); сверка тонких копий — в preflight
|
||
# validate.yml.
|
||
|
||
on:
|
||
# #623: тело вызывается тонким файлом `process-resume.yml` из ветки по умолчанию
|
||
# по ссылке `@dev`; триггеры, run-name и concurrency живут там.
|
||
workflow_call:
|
||
|
||
permissions:
|
||
contents: read
|
||
actions: read
|
||
|
||
jobs:
|
||
resume:
|
||
name: "Разбудить раунд, ждавший этот Validate"
|
||
if: github.event.workflow_run.event == 'workflow_dispatch' && startsWith(github.event.workflow_run.head_branch, 'issue/')
|
||
runs-on: ubuntu-24.04
|
||
timeout-minutes: 10
|
||
concurrency:
|
||
group: process-resume-${{ github.event.workflow_run.head_branch }}
|
||
cancel-in-progress: false
|
||
steps:
|
||
# Код берётся из dev, как у reconcile: после штатного слияния действует
|
||
# версия, которую проверил CI, а не копия из main.
|
||
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||
with:
|
||
ref: dev
|
||
fetch-depth: 1
|
||
persist-credentials: false
|
||
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
|
||
with:
|
||
node-version: 22
|
||
# Метка переставляется HP_PROCESS_TOKEN: событие от GITHUB_TOKEN не
|
||
# запустило бы process.yml (см. шапку process.yml, п. 1).
|
||
- name: Решить по маркеру ожидания и переставить S7
|
||
env:
|
||
GH_TOKEN: ${{ secrets.HP_PROCESS_TOKEN }}
|
||
REPO: ${{ github.repository }}
|
||
BRANCH: ${{ github.event.workflow_run.head_branch }}
|
||
SHA: ${{ github.event.workflow_run.head_sha }}
|
||
EVENT: ${{ github.event.workflow_run.event }}
|
||
STATUS: ${{ github.event.workflow_run.status }}
|
||
run: |
|
||
node scripts/process-resume.mjs \
|
||
--repo="$REPO" --branch="$BRANCH" --sha="$SHA" \
|
||
--event="$EVENT" --status="$STATUS" --apply=true | tee -a "$GITHUB_STEP_SUMMARY"
|