Files
houseplan-card/.github/workflows/process-metrics.yml
T
Claude bdac4b4fdc ci: закрепить образ раннера, таймауты job и некруглые cron (#658)
`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
2026-09-27 13:57:21 +03:00

42 lines
1.9 KiB
YAML

name: Метрики процесса
# Тонкий вызывающий файл (#623). Для этого события GitHub берёт workflow из
# ветки по умолчанию (`main`), поэтому здесь только то, что обязано жить там:
# триггеры, run-name, права и concurrency. Тело — `_process-metrics.yml` по ссылке
# `@dev`: правка конвейера — один коммит в `dev`, зеркало в `main` не нужно.
# Этот файл меняется, только когда меняются сами триггеры или потолок прав;
# тогда он зеркалится в `main`, и preflight `workflow_sync` (validate.yml)
# держит копии равными.
on:
schedule:
# Понедельник 05:23 UTC — после ночных прогонов, до рабочего дня; минута
# не круглая, чтобы не стоять в очереди «ровных» расписаний (#658).
- cron: '23 5 * * 1'
workflow_dispatch:
inputs:
days:
description: "Окно в днях"
required: false
default: "7"
type: string
permissions:
contents: read
actions: read
issues: read
jobs:
# Потолок прав тела: объединение job-level прав `_process-metrics.yml`. Вызываемый
# workflow может права только сузить, поэтому каждая его job по-прежнему
# получает свой прежний минимум (#556), а шире этого набора не получит никто.
dev:
permissions:
contents: read
actions: read
issues: read
uses: Matysh/houseplan-card/.github/workflows/_process-metrics.yml@dev # #623: тело конвейера из dev
with:
days: ${{ inputs.days }}
secrets: inherit