ci: add Forgejo lint, test, coverage and E2E workflow
- Add .forgejo/workflows/ci.yml triggering on push/PR to master and develop - Job lint-and-test: ESLint, vue-tsc type check, Vitest, JUnit, coverage - Job e2e: Docker compose CI stack with Postgres, backend, frontend, Playwright - Backend tests use H2 in-memory, no Postgres needed for unit tests - E2E reuses existing docker-compose.ci.yml orchestration - Strep env vars use fake test values since Stripe integration is deferred
This commit is contained in:
parent
df539f7cb7
commit
8892e0402b
1 changed files with 70 additions and 0 deletions
70
.forgejo/workflows/ci.yml
Normal file
70
.forgejo/workflows/ci.yml
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master, develop]
|
||||
pull_request:
|
||||
branches: [master, develop]
|
||||
|
||||
jobs:
|
||||
lint-and-test:
|
||||
name: Lint, type check, unit tests, coverage
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 24
|
||||
cache: npm
|
||||
cache-dependency-path: frontend/package-lock.json
|
||||
|
||||
- uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: 21
|
||||
|
||||
- name: Install frontend dependencies
|
||||
run: npm ci
|
||||
working-directory: frontend
|
||||
|
||||
- name: Lint
|
||||
run: npm run lint
|
||||
working-directory: frontend
|
||||
|
||||
- name: Type check
|
||||
run: npx vue-tsc --noEmit
|
||||
working-directory: frontend
|
||||
|
||||
- name: Frontend unit tests
|
||||
run: npm run test
|
||||
working-directory: frontend
|
||||
|
||||
- name: Backend unit tests
|
||||
run: ./gradlew :backend:test
|
||||
|
||||
- name: Coverage verification
|
||||
run: |
|
||||
./gradlew :backend:jacocoTestCoverageVerification
|
||||
npm run test:coverage
|
||||
working-directory: frontend
|
||||
|
||||
e2e:
|
||||
name: E2E browser tests
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
POSTGRES_DB: bilhej
|
||||
POSTGRES_USER: bilhej
|
||||
POSTGRES_PASSWORD: test_pw_ci_123
|
||||
JWT_SECRET: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
STRIPE_SECRET_KEY: sk_test_fake
|
||||
STRIPE_WEBHOOK_SECRET: whsec_fake
|
||||
STRIPE_PRICE_ID: price_fake
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Run E2E test stack
|
||||
run: |
|
||||
docker compose \
|
||||
-f docker-compose.ci.yml \
|
||||
up --build --abort-on-container-exit --exit-code-from playwright
|
||||
Loading…
Reference in a new issue