Files
Laufzettel/.gitea/workflows/ci.yml
T
florian.wilde e3d80e5982
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s
feat(vorlagen): Editor, Liste und Versionsgeschichte (#24)
2026-09-25 08:23:22 +00:00

128 lines
3.4 KiB
YAML

name: Prüfung
on:
push:
branches: [main, "feat/**", "fix/**"]
pull_request:
branches: [main]
jobs:
pruefung:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:17-alpine
env:
POSTGRES_USER: laufzettel
POSTGRES_PASSWORD: laufzettel
POSTGRES_DB: laufzettel_test
options: >-
--health-cmd "pg_isready -U laufzettel"
--health-interval 5s
--health-timeout 5s
--health-retries 10
env:
DATABASE_URL: postgresql://laufzettel:laufzettel@localhost:5432/laufzettel_test?schema=public
TEST_DATABASE_URL: postgresql://laufzettel:laufzettel@localhost:5432/laufzettel_test?schema=public
APP_SECRET: ci-geheimnis-mit-mindestens-32-zeichen-laenge
APP_URL: http://localhost:3000
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
- name: pnpm bereitstellen
run: corepack enable pnpm
env:
COREPACK_ENABLE_DOWNLOAD_PROMPT: 0
- name: Abhängigkeiten installieren
run: pnpm install --frozen-lockfile
- name: Prisma-Client erzeugen
run: pnpm exec prisma generate
- name: Code-Stil prüfen
run: pnpm lint
- name: Format prüfen
run: pnpm format:pruefen
- name: Typen prüfen
run: pnpm typecheck
- name: Tests
run: pnpm test
- name: Bauen
run: pnpm build
- name: Dokumentation prüfen
run: pnpm pruefe:doku
- name: Shell-Skripte prüfen
run: |
if compgen -G "deploy/*.sh" > /dev/null || compgen -G "deploy/proxmox/*.sh" > /dev/null; then
shellcheck --severity=warning deploy/*.sh deploy/proxmox/*.sh
else
echo "Noch keine Shell-Skripte vorhanden (kommen mit #019)."
fi
e2e:
runs-on: ubuntu-latest
needs: pruefung
services:
postgres:
image: postgres:17-alpine
env:
POSTGRES_USER: laufzettel
POSTGRES_PASSWORD: laufzettel
POSTGRES_DB: laufzettel_test
options: >-
--health-cmd "pg_isready -U laufzettel"
--health-interval 5s
--health-timeout 5s
--health-retries 10
env:
DATABASE_URL: postgresql://laufzettel:laufzettel@localhost:5432/laufzettel_test?schema=public
APP_SECRET: ci-geheimnis-mit-mindestens-32-zeichen-laenge
APP_URL: http://127.0.0.1:3000
AUTH_LOCAL_ENABLED: "true"
SEED_ADMIN_EMAIL: admin@firma.example
SEED_ADMIN_PASSWORD: ci-passwort-nur-fuer-tests
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
- name: pnpm bereitstellen
run: corepack enable pnpm
env:
COREPACK_ENABLE_DOWNLOAD_PROMPT: 0
- name: Abhängigkeiten installieren
run: pnpm install --frozen-lockfile
- name: Browser holen
run: pnpm exec playwright install --with-deps chromium
- name: Schema und Seed
run: pnpm exec prisma migrate deploy && pnpm db:seed
- name: Bauen
run: pnpm build
- name: Ende-zu-Ende-Tests
run: pnpm exec playwright test
- uses: actions/upload-artifact@v4
if: failure()
with:
name: playwright-bericht
path: playwright-report/
retention-days: 7