ci: Add the CI test pipeline (GitHub Actions)#69
Merged
Conversation
Add a Build workflow that compiles the project with the Maven wrapper on pull requests targeting dev and on pushes to dev and main. Use actions/setup-java with Temurin 21 and the built-in Maven cache. Keep one focused workflow per CI concern instead of a monolithic ci.yml, as decided in issue #49 (wontfix). Fixes #45
Add a Tests workflow that runs ./mvnw test on pull requests targeting dev and on pushes to dev and main. All test classes end in *Test and run under Surefire, per ADR-0009. Testcontainers starts a real PostgreSQL using the Docker daemon that ubuntu-latest runners provide, so no extra container setup is needed. No .env file is required either: @Serviceconnection wires the datasource to the container and the tests exclude the MongoDB autoconfiguration. Fixes #46
Add Checkstyle (maven-checkstyle-plugin 3.6.0, bundled Google ruleset) as a report-only quality check: checkstyle:checkstyle prints violations on the console and writes target/checkstyle-result.xml, and failOnViolation/failsOnError are off, so the build never fails on violations. Add a Lint workflow that generates the report on pull requests targeting dev and on pushes to dev and main, and uploads it as a workflow artifact. The job uses continue-on-error so it never gates merges on day one for an existing codebase. Tighten later by switching to checkstyle:check with failOnViolation, or a project ruleset. Fixes #47
Add jacoco-maven-plugin 0.8.15 with prepare-agent to instrument the Surefire forks and a report execution bound to the test phase, so every `mvn test` run writes the HTML and XML report to target/site/jacoco/. Upload that report as a workflow artifact in the Tests workflow. No external coverage service is used. Fixes #48
Add ADR-0010 (structure CI as focused workflows per concern, recording why the monolithic ci.yml of issue #49 was rejected) and ADR-0011 (start CI quality checks as advisory reports: report-only Checkstyle and JaCoCo artifacts, gates come later), index both in docs/adr/README.md, and add the retrospective implementation plan docs/plans/2026-07-06-ci-test-pipeline.md covering issues #45 to #48 with the verification results.
Add the terms introduced by the CI work to GLOSSARY.md: Checkstyle, code coverage, JaCoCo, linter, Maven Wrapper, advisory check, CI, GitHub Actions, runner, Temurin, workflow, and workflow artifact, with links to ADR-0010 and ADR-0011.
Add GLOSSAIRE.md, the French counterpart of GLOSSARY.md, covering every entry. Cross-link the two files with a note stating they must be kept in sync, and reference the French version from the README documentation list.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces a GitHub Actions CI pipeline for the project, establishing automated build verification, test execution (with coverage reporting), and lint reporting on PRs to dev and pushes to dev/main. It also documents these CI decisions via ADRs and updates the project glossary (including a new French translation) to reflect the new tooling.
Changes:
- Add three focused GitHub Actions workflows: Build (
compile), Tests (test+ JaCoCo artifact), and Lint (Checkstyle report + artifact). - Add Maven plugin configuration for Checkstyle (report-only) and JaCoCo (report generation during
test). - Document CI architecture and “advisory-first” quality checks via ADRs; update docs/glossary to reflect CI concepts and add a French glossary translation.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Adds a link to the French glossary alongside the English glossary entry. |
| pom.xml | Adds pinned Checkstyle + JaCoCo plugins (advisory reporting) to support CI lint and coverage artifacts. |
| GLOSSARY.md | Notes French translation parity and adds CI/lint/coverage terminology aligned with the new pipeline. |
| GLOSSAIRE.md | Adds a French translation of the glossary, including CI/lint/coverage vocabulary. |
| docs/plans/2026-07-06-ci-test-pipeline.md | Records the executed implementation plan for the CI test pipeline. |
| docs/adr/README.md | Updates ADR index to include the new CI-related ADRs (0010, 0011). |
| docs/adr/0011-start-ci-quality-checks-as-advisory-reports.md | New ADR documenting why lint/coverage start as advisory reports. |
| docs/adr/0010-structure-ci-as-focused-workflows-per-concern.md | New ADR documenting the “one workflow per concern” CI structure. |
| .github/workflows/test.yml | Adds a CI workflow to run ./mvnw test and upload JaCoCo report artifacts. |
| .github/workflows/lint.yml | Adds a CI workflow to run Checkstyle reporting and upload the XML report artifact (non-blocking). |
| .github/workflows/build.yml | Adds a CI workflow to compile the project on PRs/pushes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Add a badge block above the README title showing the status of the Build, Tests, Lint, and Schema drift workflows on dev, plus the open issue count, using reference-style links defined at the bottom of the file (same layout as the bet-no-loss project README). The Build, Tests, and Lint badges display a status once this branch merges into dev and the first push-triggered runs complete.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR brings a GitHub Actions CI pipeline that builds, tests, lints, and measures test coverage on every PR targeting
devand every push todev/main.Following the decision in #49, CI is one focused workflow per concern instead of a monolithic
ci.yml:build.yml./mvnw -B -ntp compiletest.yml./mvnw -B -ntp test+ uploads the JaCoCo coverage report as an artifactlint.ymlAll jobs run on
ubuntu-latestwith Temurin 21 and Maven dependency caching.Design decisions
Architecture decisions are recorded as ADRs:
Note
Rationale: Do not block feature PRs on pre-existing style debt. Tightening path documented (switch to
checkstyle:check, addjacoco:check).Build changes
pom.xml: addsmaven-checkstyle-plugin3.6.0 (report-only, bundledgoogle_checks.xml, no lifecycle binding) andjacoco-maven-plugin0.8.15 (prepare-agent+reportbound to thetestphase, so everymvn testproducestarget/site/jacoco/)..envon CI:@ServiceConnectionwires the Testcontainers PostgreSQL, and the tests exclude the MongoDB autoconfiguration; the runner's built-in Docker daemon is enough.Documentation
docs/plans/2026-07-06-ci-test-pipeline.md: the executed implementation plan with verification results.GLOSSARY.md: new entries for the CI terms (Checkstyle, JaCoCo, workflow, runner, advisory check, ...).GLOSSAIRE.md(new): full French translation of the glossary, cross-linked and kept in sync with the English file.Verification
make testafter the pom changes: Tests run: 11, Failures: 0, Errors: 0 and the JaCoCo HTML/XML report is produced.Closes #45
Closes #46
Closes #47
Closes #48