Some checks failed
Dev CI / Backend — Lint (push) Failing after 1m5s
Dev CI / Backend — Unit Tests (push) Has been skipped
Dev CI / Security gate (push) Failing after 1m20s
Dev CI / Frontend — Lint & Type-check (push) Successful in 1m46s
Dev CI / Frontend — Unit Tests (push) Successful in 1m21s
Dev CI / Notify Failure (push) Has been skipped
137 lines
4.0 KiB
YAML
137 lines
4.0 KiB
YAML
name: PR Checks
|
|
|
|
# Required status checks — configure these in branch protection rules.
|
|
# PRs to preprod : lint + type-check + unit tests + integration tests
|
|
# PRs to main : same checks, including integration and security
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [preprod, main]
|
|
|
|
jobs:
|
|
security:
|
|
name: Security gate
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: https://github.com/actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
|
|
with:
|
|
persist-credentials: false
|
|
- uses: ./.gitea/actions/security
|
|
|
|
backend-quality:
|
|
name: Backend — Lint
|
|
runs-on: ubuntu-latest
|
|
defaults:
|
|
run:
|
|
working-directory: apps/backend
|
|
steps:
|
|
- uses: https://github.com/actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
|
|
with:
|
|
persist-credentials: false
|
|
- uses: ./.gitea/actions/setup-node
|
|
- run: npm ci --legacy-peer-deps
|
|
- run: npm run lint -- --no-fix
|
|
|
|
frontend-quality:
|
|
name: Frontend — Lint & Type-check
|
|
runs-on: ubuntu-latest
|
|
defaults:
|
|
run:
|
|
working-directory: apps/frontend
|
|
steps:
|
|
- uses: https://github.com/actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
|
|
with:
|
|
persist-credentials: false
|
|
- uses: ./.gitea/actions/setup-node
|
|
- run: npm ci --legacy-peer-deps
|
|
- run: npm run lint
|
|
- run: npm run type-check
|
|
|
|
backend-tests:
|
|
name: Backend — Unit Tests
|
|
runs-on: ubuntu-latest
|
|
needs: backend-quality
|
|
defaults:
|
|
run:
|
|
working-directory: apps/backend
|
|
steps:
|
|
- uses: https://github.com/actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
|
|
with:
|
|
persist-credentials: false
|
|
- uses: ./.gitea/actions/setup-node
|
|
- run: npm ci --legacy-peer-deps
|
|
- run: npm test -- --ci --runInBand
|
|
|
|
frontend-tests:
|
|
name: Frontend — Unit Tests
|
|
runs-on: ubuntu-latest
|
|
needs: frontend-quality
|
|
defaults:
|
|
run:
|
|
working-directory: apps/frontend
|
|
steps:
|
|
- uses: https://github.com/actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
|
|
with:
|
|
persist-credentials: false
|
|
- uses: ./.gitea/actions/setup-node
|
|
- run: npm ci --legacy-peer-deps
|
|
- run: npm test -- --ci --runInBand
|
|
|
|
# Integration tests validate the actual merge candidate for both branches.
|
|
integration-tests:
|
|
name: Backend — Integration Tests
|
|
runs-on: ubuntu-latest
|
|
needs: backend-tests
|
|
defaults:
|
|
run:
|
|
working-directory: apps/backend
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:15-alpine
|
|
env:
|
|
POSTGRES_USER: xpeditis_test
|
|
POSTGRES_PASSWORD: xpeditis_test_password
|
|
POSTGRES_DB: xpeditis_test
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 5s
|
|
--health-timeout 5s
|
|
--health-retries 10
|
|
redis:
|
|
image: redis:7-alpine
|
|
options: >-
|
|
--health-cmd "redis-cli ping"
|
|
--health-interval 5s
|
|
--health-timeout 5s
|
|
--health-retries 10
|
|
|
|
steps:
|
|
- uses: https://github.com/actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
|
|
with:
|
|
persist-credentials: false
|
|
- uses: ./.gitea/actions/setup-node
|
|
- run: npm ci --legacy-peer-deps
|
|
- name: Run integration tests
|
|
env:
|
|
NODE_ENV: test
|
|
TEST_DB_HOST: postgres
|
|
TEST_DB_PORT: 5432
|
|
TEST_DB_USER: xpeditis_test
|
|
TEST_DB_PASSWORD: xpeditis_test_password
|
|
TEST_DB_NAME: xpeditis_test
|
|
DATABASE_HOST: postgres
|
|
DATABASE_PORT: 5432
|
|
DATABASE_USER: xpeditis_test
|
|
DATABASE_PASSWORD: xpeditis_test_password
|
|
DATABASE_NAME: xpeditis_test
|
|
DATABASE_SYNCHRONIZE: 'false'
|
|
REDIS_HOST: redis
|
|
REDIS_PORT: 6379
|
|
REDIS_PASSWORD: ''
|
|
JWT_SECRET: test-secret-key-ci
|
|
SMTP_HOST: localhost
|
|
SMTP_PORT: 1025
|
|
SMTP_FROM: test@xpeditis.com
|
|
run: npm run test:integration -- --ci --runInBand
|