krona-staff/.forgejo/workflows/ci.yml

36 lines
1.2 KiB
YAML

name: ci
on:
push:
branches: [main, codex/bootstrap-platform-foundation]
pull_request:
jobs:
verify:
runs-on: docker
services:
postgres:
image: postgres:17-alpine@sha256:18cfe3ef5e6815560c98237d6216d1e5119702fb0f3894c8785dd58b8bbe5d73
env:
POSTGRES_DB: krona_staff
POSTGRES_USER: krona_migrator
POSTGRES_PASSWORD: ci-migration-password
ports: ['5432:5432']
options: >-
--health-cmd "pg_isready -U krona_migrator -d krona_staff"
--health-interval 5s
--health-timeout 3s
--health-retries 20
env:
DATABASE_MIGRATION_URL: postgres://krona_migrator:ci-migration-password@postgres:5432/krona_staff
DATABASE_TEST_URL: postgres://krona_staff_app:ci-app-password@postgres:5432/krona_staff
POSTGRES_APP_PASSWORD: ci-app-password
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 22, cache: npm }
- run: npm ci
- run: node scripts/create-app-role.mjs
- run: node scripts/migrate.mjs up
- run: npm run check
- run: npm run format:check
- run: npm audit --audit-level=high
- run: docker build -t krona-staff:${{ forgejo.sha }} .