64 lines
2.5 KiB
YAML
64 lines
2.5 KiB
YAML
# Werkator CI configuration for werkcrappit (built by https://werkator.javagil.de).
|
|
# Reference: https://github.com/mhoennig/werkator/blob/main/docs/configuration.md
|
|
werkator:
|
|
version:
|
|
since: "1.0.1"
|
|
|
|
gitea:
|
|
baseUrl: https://git.javagil.de
|
|
owner: mi
|
|
repo: werkcrappit
|
|
statusContext: werkator
|
|
|
|
artifacts:
|
|
retentionPerBranch: 3
|
|
|
|
watcher:
|
|
newBranchMaxAge: 5d
|
|
|
|
builds:
|
|
# The gradle wrapper is committed, so the build environment needs a JDK
|
|
# and nothing else — werkdock's rootfs has JDK 21, which runs Gradle 9; Foojay loads the Temurin 25 toolchain.
|
|
default:
|
|
trigger:
|
|
onPush: true
|
|
cleanCommand: rm -rf build */build
|
|
buildCommand: ./gradlew --console=plain --no-daemon build
|
|
# about 5 times the longest build so far (109 s); the host allows hours for
|
|
# Werkator's nightly mutation build, and this keeps a hanging build from using them
|
|
timeout: 10m
|
|
artifactDirs:
|
|
- werkcrappit-pit/build/reports
|
|
- werkcrappit-gradle-plugin/build/reports
|
|
stdoutLog: build.stdout.log
|
|
stderrLog: build.stderr.log
|
|
|
|
# The repository's half of the publication to the Gitea Maven registry: what it does.
|
|
# When it runs (after a green main build), its status context and the registry token are
|
|
# the host's half (docs/publishing.md), so no branch can trigger it or reach the token.
|
|
publish:
|
|
cleanCommand: ""
|
|
buildCommand: tools/publish
|
|
artifactDirs: []
|
|
|
|
# Mutation testing of werkcrappit-pit with its own Mutation-CRAP: PIT runs the unit tests
|
|
# against every mutant, nightly on main after new commits, in the slot after Werkator's
|
|
# (00:00 UTC) on the same host. A full run took 6.5 minutes locally; PIT's history in
|
|
# .pitest/ keeps later runs to the changed classes. mutationCrapCheck fails above the
|
|
# limit in werkcrappit-pit/build.gradle.kts.
|
|
mutation:
|
|
trigger:
|
|
atTimes: ["03:00"]
|
|
branches: ["main"]
|
|
activeWithin: 24h
|
|
# only its own reports: the worktree is main's, shared with the build and publish
|
|
cleanCommand: rm -rf werkcrappit-pit/build/reports/pitest werkcrappit-pit/build/reports/codecharta
|
|
# the export before the gate, so a failing gate still leaves the code city to look at
|
|
buildCommand: ./gradlew --console=plain --no-daemon :werkcrappit-pit:pitest :werkcrappit-pit:mutationCrapCodeCharta :werkcrappit-pit:mutationCrapCheck
|
|
artifactDirs:
|
|
- werkcrappit-pit/build/reports/pitest
|
|
- werkcrappit-pit/build/reports/codecharta
|
|
# about 5 times the measured full run; the host would allow hours
|
|
timeout: 30m
|
|
statusContext: werkator/mutation
|