ci(werkator): .werkator.yml — Werkbaum wird zusätzlich von Werkator gebaut
Werkator ist ein deklaratives CI (https://werkator.javagil.de): Die Datei im Repo-Root beschreibt die Builds, der Watcher der Instanz baut jeden Push auf jedem Branch. Zwei Builds, wie die beiden Teile des Monorepos: `backend` (Gradle-Tests, Artefakt sind die Berichte unter backend/build/reports) und `frontend` (npm ci, Vitest, Vite-Bundle als frontend/dist). Das `default` trägt bewusst keinen Trigger — es ist nur die Einstellungsbasis, damit nichts doppelt läuft. Beide Befehle laufen wörtlich so, wie sie in der Datei stehen, lokal durch: Backend BUILD SUCCESSFUL in 1m35s mit 180 Testfällen (jacoco- und Test-Berichte liegen im deklarierten Artefakt-Verzeichnis), Frontend npm ci + 628 Tests + Vite-Bundle nach frontend/dist/index.html (761 kB). Die Sandbox hat Node 20.19, lokal läuft 22.17 — deshalb zusätzlich die `engines`-Angaben aller installierten Pakete geprüft: Keines schließt 20.19 aus; die schärfsten Schranken sind vite 8.1.5 (^20.19.0 || >=22.12.0) und jsdom 29.1.1 (^20.19.0 || ^22.13.0 || >=24). 20.19.0 ist damit exakt die Untergrenze — wer eine Abhängigkeit aufnimmt, die darüber liegt, bricht den CI-Build (Anleitung). Werkator baut und testet nur; deployt wird weiterhin über scripts/deploy-*.sh bzw. tools/remote (D77), und der GitHub-Pages-Workflow bleibt unberührt — beide CI laufen parallel, bis das Repo nach Gitea umzieht. Die Footer-Version setzt nur der Pages-Workflow (D16), das Werkator-Artefakt trägt sie nicht. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
112ada4e58
commit
3ccff12cfd
@@ -0,0 +1,52 @@
|
|||||||
|
# Werkator CI configuration for Werkbaum (built by https://werkator.javagil.de).
|
||||||
|
# Reference: https://github.com/mhoennig/werkator/blob/main/docs/configuration.md
|
||||||
|
werkator:
|
||||||
|
version:
|
||||||
|
since: "1.0.1"
|
||||||
|
|
||||||
|
# Commit status target. Points at GitHub for now; the repository will move to
|
||||||
|
# https://git.javagil.de (Gitea) later, GitHub stays a synchronised clone. Status
|
||||||
|
# checks are posted only once the origin is a Gitea; until then this is a label.
|
||||||
|
gitea:
|
||||||
|
baseUrl: https://github.com
|
||||||
|
owner: mhoennig
|
||||||
|
repo: werkbaum
|
||||||
|
statusContext: werkator
|
||||||
|
|
||||||
|
artifacts:
|
||||||
|
retentionPerBranch: 3
|
||||||
|
|
||||||
|
watcher:
|
||||||
|
newBranchMaxAge: 5d
|
||||||
|
|
||||||
|
# Named build definitions. "default" carries no trigger on purpose: it is only
|
||||||
|
# the settings base the two real builds inherit from, so nothing runs twice.
|
||||||
|
builds:
|
||||||
|
default:
|
||||||
|
stdoutLog: build.stdout.log
|
||||||
|
stderrLog: build.stderr.log
|
||||||
|
|
||||||
|
# Backend: Kotlin/Spring Boot under backend/, JUnit 5 + Cucumber, H2 in memory.
|
||||||
|
# The openApiGenerate task runs as part of compilation; jacoco reports land in
|
||||||
|
# backend/build/reports and are browsed by the artifact page's report index.
|
||||||
|
backend:
|
||||||
|
trigger:
|
||||||
|
onPush: true
|
||||||
|
cleanCommand: rm -rf backend/build
|
||||||
|
buildCommand: cd backend && ./gradlew --console=plain --no-daemon test
|
||||||
|
artifactDirs:
|
||||||
|
- backend/build/reports
|
||||||
|
statusContext: werkator/backend
|
||||||
|
|
||||||
|
# Frontend: Vite bundles the editor into one self-contained frontend/dist/index.html.
|
||||||
|
# `npm ci` installs from the lock file; the tests run first, a red Vitest run
|
||||||
|
# never produces an artifact. The default build carries the "latest build" hint,
|
||||||
|
# exactly like the GitHub Pages deployment.
|
||||||
|
frontend:
|
||||||
|
trigger:
|
||||||
|
onPush: true
|
||||||
|
cleanCommand: rm -rf frontend/dist frontend/node_modules
|
||||||
|
buildCommand: cd frontend && npm ci --no-audit --no-fund && npm test && npm run build
|
||||||
|
artifactDirs:
|
||||||
|
- frontend/dist
|
||||||
|
statusContext: werkator/frontend
|
||||||
Reference in New Issue
Block a user