#!/usr/bin/env bash # Локальный эквивалент задач verify/format/e2e из .forgejo/workflows/ci.yml # (без Docker: PostgreSQL 17 уже запущен, E2E_PG_ADMIN_URL указывает на bootstrap-админа). # docker-build локально не воспроизводится: Docker в этой среде нет. set -uo pipefail cd "$(dirname "$0")/../.." : "${E2E_PG_ADMIN_URL:?E2E_PG_ADMIN_URL (bootstrap-админ PostgreSQL 17) обязателен}" tmp="$(mktemp -d)" trap 'rm -rf "$tmp"' EXIT status=0 step() { local name="$1" shift echo "::: [$name] $*" if "$@"; then echo "::: [$name] OK"; else local code=$?; echo "::: [$name] FAIL exit=$code"; status=1; fi } with_db_env() { (set -a; . "$tmp/db.env"; set +a; unset DATABASE_URL POSTGRES_APP_PASSWORD; "$@"); } echo "=== job verify" step npm-ci npm ci --no-audit --no-fund step provision node scripts/test/provision-pg.mjs --out "$tmp/db.env" --db krona_staff step migrate-roundtrip with_db_env node scripts/test/migrate-roundtrip.mjs roundtrip step check with_db_env npm run check step audit npm audit --audit-level=high echo "=== job format" step format-check npm run format:check echo "=== job e2e" step e2e env E2E_MIGRATIONS=roundtrip node scripts/test/run-e2e.mjs echo "=== итог: status=$status" exit $status