ci: задача windows, включаемая переменной, когда появится раннер

Зачем: владелец требует проверку запуска стенда на Windows 11, но
Windows-раннера у git.ochenstarik.ru сейчас нет. Задача без подходящего
раннера висела бы в очереди и держала статус прогона «в ожидании»,
поэтому она выключена по умолчанию и включается переменной репозитория
KRONA_WINDOWS_RUNNER=true.

Что: npm ci, тест запуска без .cmd-обёрток (node vitest.mjs, без npx),
а при заданном секрете WINDOWS_E2E_PG_ADMIN_URL — полный run-e2e с
выгрузкой evidence артефактом. actionlint (метки docker, docker-host,
windows) — 0 замечаний. Сама задача ни разу не запускалась — не проверено.
This commit is contained in:
grok 2026-09-26 15:20:47 +07:00
parent fc20f75b55
commit 27499da191

View file

@ -102,6 +102,36 @@ jobs:
retention-days: 14
if-no-files-found: warn
# Windows 11 (проект разрабатывается под Windows). Windows-раннера у сервера пока
# НЕТ, поэтому задача включается только переменной репозитория
# KRONA_WINDOWS_RUNNER=true (иначе пропускается и не висит в очереди).
# Раннер: forgejo-runner в режиме host с меткой `windows`, Node 22+.
# e2e на Windows идёт, только если задан секрет WINDOWS_E2E_PG_ADMIN_URL
# (bootstrap-админ локальной PostgreSQL 17 на раннере). НЕ ПРОВЕРЕНО: не запускалась.
windows:
if: vars.KRONA_WINDOWS_RUNNER == 'true'
runs-on: windows
env:
E2E_PG_ADMIN_URL: ${{ secrets.WINDOWS_E2E_PG_ADMIN_URL }}
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with: { node-version: 22, cache: npm }
- run: npm ci
- name: spawn without .cmd wrappers
run: node node_modules/vitest/vitest.mjs run tests/e2e/harness/node-commands.test.ts
- name: e2e on Windows (needs local PostgreSQL 17)
if: env.E2E_PG_ADMIN_URL != ''
run: node scripts/test/run-e2e.mjs
- name: upload Windows e2e evidence
if: always() && env.E2E_PG_ADMIN_URL != ''
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: e2e-evidence-windows
path: tests/e2e/evidence/
retention-days: 14
if-no-files-found: warn
# docker build требует Docker daemon, которого нет в контейнере метки `docker`.
# Нужен раннер с меткой `docker-host` (хост с доступом к Docker). Пока такого
# раннера нет, задача ждёт в очереди и не блокирует verify/format/e2e.