krona-staff/scripts
grok f59be3adf9 ci: PostgreSQL 17 с ролями как в pilot, roundtrip миграций, e2e, SHA-пины
Зачем: прежний CI запускал миграции и тесты под POSTGRES_USER сервиса
(суперпользователь), не проверял откат миграций, не запускал e2e на
реальной БД, держал плавающие теги actions (F13) и выполнял docker build
в контейнере без Docker daemon.

- verify: bootstrap-админ сервиса только создаёт роли (provision-pg.mjs,
  пароли случайные); миграции up -> откат всех -> up -> up (no-op) ролью
  krona_migrator без SUPERUSER; `npm run check` с DATABASE_TEST_URL
  (app-роль) и DATABASE_TEST_MIGRATION_URL (очистка, см. N5); npm audit.
- format: prettier вынесен в отдельную задачу — он красный по 25 файлам
  (F14) и не должен маскировать статус verify/e2e.
- e2e: реальный сервер + PostgreSQL 17 через scripts/test/run-e2e.mjs.
  Выбран «храповик» known-defects.json, а не отдельная задача с
  continue-on-error: так CI зелёный, только если стенд работает и каждый
  красный сценарий — известный открытый дефект; новый красный сценарий
  (регрессия) или исправленный, но не вычеркнутый дефект делают задачу
  красной. continue-on-error скрыл бы и поломку самого стенда.
- docker-build: отдельная задача на метке `docker-host` только для push,
  после verify; без такого раннера она ждёт в очереди, не блокируя
  остальные.
- actions/checkout v4.4.0 и actions/setup-node v4.4.0 закреплены SHA
  (git ls-remote; одинаковы на github.com и code.forgejo.org).

Проверено: actionlint 1.7.12 (метки docker/docker-host объявлены как
self-hosted) — 0 замечаний; scripts/test/ci-local.sh повторяет шаги
verify/format/e2e на локальной PostgreSQL 17.11 (Forgejo-раннер реально
не запускался — не проверено).
2026-09-26 14:29:47 +07:00
..
test ci: PostgreSQL 17 с ролями как в pilot, roundtrip миграций, e2e, SHA-пины 2026-09-26 14:29:47 +07:00
build-terminal-release.ps1 fix: read terminal release version reliably 2026-09-24 17:13:14 +07:00
check-contracts.mjs fix: enforce tenant isolation and runtime contracts 2026-09-18 01:34:12 +07:00
check-migrations.mjs feat: add secure attendance portal and payroll foundation 2026-09-24 15:59:38 +07:00
configure-terminal-pilot.ps1 feat: add secure attendance portal and payroll foundation 2026-09-24 15:59:38 +07:00
create-app-role.mjs feat: add secure attendance portal and payroll foundation 2026-09-24 15:59:38 +07:00
generate-vapid-keys.mjs fix(push): isolate employee data and preserve platform outbox 2026-09-26 12:31:10 +07:00
import-owner-workbook.py fix(import): provision workbook profession catalog 2026-09-24 21:25:13 +07:00
migrate.mjs fix: harden terminal recovery and deployment 2026-09-18 11:10:28 +07:00
migration-checksum.d.mts fix: harden terminal recovery and deployment 2026-09-18 11:10:28 +07:00
migration-checksum.mjs fix: harden terminal recovery and deployment 2026-09-18 11:10:28 +07:00