actions/upload-artifact@v4 requires GHES features not available in self-hosted Forgejo, causing artifact upload failures with: GHESNotSupportedError: upload-artifact@v4+ are not supported on GHES. - Downgrade both coverage upload steps from v4 to v3 - v3 uses a compatible upload mechanism that works on Forgejo Keeps the artifact upload functionality so coverage HTML reports remain downloadable from the workflow run page.
86 lines
2.3 KiB
YAML
86 lines
2.3 KiB
YAML
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:
|
|
- name: Checkout repository
|
|
run: |
|
|
git init
|
|
git remote add origin https://x-access-token:${FORGEJO_TOKEN}@srvr.nu/git/jocke/bilhej.git
|
|
git fetch --depth 1 origin ${GITHUB_SHA}
|
|
git checkout FETCH_HEAD
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 24
|
|
|
|
- uses: https://github.com/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: Backend coverage
|
|
run: ./gradlew :backend:jacocoTestCoverageVerification
|
|
|
|
- name: Frontend coverage
|
|
run: npm run test:coverage
|
|
working-directory: frontend
|
|
|
|
- name: Upload backend coverage report
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: backend-coverage
|
|
path: backend/build/reports/jacoco/test/html/
|
|
retention-days: 7
|
|
|
|
- name: Upload frontend coverage report
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: frontend-coverage
|
|
path: frontend/coverage/
|
|
retention-days: 7
|
|
|
|
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:
|
|
- name: Checkout repository
|
|
run: |
|
|
git init
|
|
git remote add origin https://x-access-token:${FORGEJO_TOKEN}@srvr.nu/git/jocke/bilhej.git
|
|
git fetch --depth 1 origin ${GITHUB_SHA}
|
|
git checkout FETCH_HEAD
|
|
|
|
- name: Run E2E test stack
|
|
run: |
|
|
docker compose \
|
|
-f docker-compose.e2e.yml \
|
|
up --build --abort-on-container-exit --exit-code-from playwright
|