ci: mirror thin workflow callers in main after #716
Проверка (CI) / Предполёт: документация, провенанс, процесс (push) Waiting to run
Проверка (CI) / Классификация изменённых файлов (push) Waiting to run
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Blocked by required conditions
Проверка (CI) / HACS: валидация репозитория (push) Blocked by required conditions
Проверка (CI) / Hassfest: манифест интеграции (push) Blocked by required conditions
Проверка (CI) / Мутанты по диффу (1/6): затронутые свидетели краснеют (push) Blocked by required conditions
Проверка (CI) / Мутанты по диффу (2/6): затронутые свидетели краснеют (push) Blocked by required conditions
Проверка (CI) / Мутанты по диффу (3/6): затронутые свидетели краснеют (push) Blocked by required conditions
Проверка (CI) / Мутанты по диффу (4/6): затронутые свидетели краснеют (push) Blocked by required conditions
Проверка (CI) / Мутанты по диффу (5/6): затронутые свидетели краснеют (push) Blocked by required conditions
Проверка (CI) / Мутанты по диффу (6/6): затронутые свидетели краснеют (push) Blocked by required conditions
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Blocked by required conditions
Проверка (CI) / Бандл головы dev для стенда (push) Blocked by required conditions
Проверка (CI) / Смоки в браузере (шард 1 из 3) (push) Blocked by required conditions
Проверка (CI) / Смоки в браузере (шард 2 из 3) (push) Blocked by required conditions
Проверка (CI) / Смоки в браузере (шард 3 из 3) (push) Blocked by required conditions
Проверка (CI) / Смоки: все шарды зелёные (push) Blocked by required conditions
Проверка (CI) / Golden-кадры против принятых эталонов (push) Blocked by required conditions
Проверка (CI) / Перф-смок: бюджет времени кадра (push) Blocked by required conditions
Проверка (CI) / Геометрия: TS/Python parity исполнена (push) Blocked by required conditions
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Blocked by required conditions
Проверка (CI) / Доказательство выполненных проверок (push) Blocked by required conditions

Кнопку и запуск workflow_dispatch GitHub даёт только workflow, чей файл
лежит в ветке по умолчанию: ship-review.yml (#696) и beta-derived.yml (#697)
жили только в dev и не запускались вовсе. Два тонких вызывающих файла —
кнопка, входы, run-name, потолок прав и concurrency; тела `_ship-review.yml`
и `_beta-derived.yml` вызываются `@dev`. Файлы байт-в-байт равны ветке
задачи issue/716-register-dispatch-workflows@5451542e. В dev она сливается
после этого коммита: в обратном порядке preflight workflow_sync на dev
нашёл бы файлы, которых нет в main.

Issue: #716
User-Visible: no
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd
This commit is contained in:
Claude
2026-09-30 21:40:31 +03:00
parent 7d4d75bdfb
commit 2022e183a5
2 changed files with 118 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
name: "Бета: производные артефакты на dev"
run-name: "Derived artifacts ${{ inputs.tag }}"
# Тонкий вызывающий файл (#716, устройство #623). `workflow_dispatch` GitHub
# исполняет с выбранной ветки, но кнопку и сам запуск (`gh workflow run`)
# даёт только workflow, чей файл лежит в ветке по умолчанию (`main`). Поэтому
# здесь только то, что обязано жить там: триггер, входы ручного запуска,
# run-name, права и concurrency. Тело — `_beta-derived.yml` по ссылке `@dev`:
# правка съёмки и приёмки — один коммит в `dev`, а запуск с любой ветки (в
# кнопке по умолчанию выбрана `main`) исполняет тело из `dev`.
# Этот файл меняется, только когда меняются входы или потолок прав; тогда он
# зеркалится в `main`, и preflight `workflow_sync` (validate.yml) держит копии
# равными.
on:
workflow_dispatch:
inputs:
tag:
description: "Beta tag these artifacts are for, for example v1.79.0-beta.1"
required: true
type: string
docs_expect_change:
description: "Doc scenario ids expected to change, comma-separated (empty = none)"
required: false
type: string
default: ""
golden_run:
description: "Validate run id on dev whose golden-images artifact holds the shifted frames (empty = skip golden)"
required: false
type: string
default: ""
golden_expect_change:
description: "Golden scenes expected to change, comma-separated"
required: false
type: string
default: ""
golden_expect_new:
description: "New golden scenes, comma-separated"
required: false
type: string
default: ""
permissions:
contents: read
concurrency:
group: beta-derived
cancel-in-progress: false
jobs:
# Потолок прав тела: объединение job-level прав `_beta-derived.yml`. Вызываемый
# workflow может права только сузить, поэтому каждая его job по-прежнему
# получает свой прежний минимум (#556), а шире этого набора не получит никто.
dev:
permissions:
contents: read
actions: read
uses: Matysh/houseplan-card/.github/workflows/_beta-derived.yml@dev # #716: тело съёмки и приёмки из dev
with:
tag: ${{ inputs.tag }}
docs_expect_change: ${{ inputs.docs_expect_change }}
golden_run: ${{ inputs.golden_run }}
golden_expect_change: ${{ inputs.golden_expect_change }}
golden_expect_new: ${{ inputs.golden_expect_new }}
secrets: inherit
+53
View File
@@ -0,0 +1,53 @@
name: "Бета: пакетное ревью ship"
run-name: "Ship review ${{ inputs.tag }}"
# Тонкий вызывающий файл (#716, устройство #623). `workflow_dispatch` GitHub
# исполняет с выбранной ветки, но кнопку и сам запуск (`gh workflow run`)
# даёт только workflow, чей файл лежит в ветке по умолчанию (`main`). Поэтому
# здесь только то, что обязано жить там: триггер, входы ручного запуска,
# run-name, права и concurrency. Тело — `_ship-review.yml` по ссылке `@dev`:
# правка ревью — один коммит в `dev`, а запуск с любой ветки (в кнопке по
# умолчанию выбрана `main`) исполняет тело из `dev`.
# Этот файл меняется, только когда меняются входы или потолок прав; тогда он
# зеркалится в `main`, и preflight `workflow_sync` (validate.yml) держит копии
# равными.
on:
workflow_dispatch:
inputs:
tag:
description: "Beta tag the review is for, for example v1.79.0-beta.1"
required: true
type: string
candidate:
description: "Exact candidate SHA; empty = the dev tip"
required: false
type: string
default: ""
force:
description: "Review again even when the document already exists in dev"
required: false
type: boolean
default: false
permissions:
contents: read
concurrency:
group: ship-review-${{ inputs.tag }}
cancel-in-progress: false
jobs:
# Потолок прав тела: объединение job-level прав `_ship-review.yml`. Вызываемый
# workflow может права только сузить, поэтому каждая его job по-прежнему
# получает свой прежний минимум (#556), а шире этого набора не получит никто.
dev:
permissions:
contents: read
issues: read
uses: Matysh/houseplan-card/.github/workflows/_ship-review.yml@dev # #716: тело ревью из dev
with:
tag: ${{ inputs.tag }}
candidate: ${{ inputs.candidate }}
force: ${{ inputs.force }}
secrets: inherit