Feature/ci pipeline#1
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new GitHub Actions workflow intended to act as a central CI pipeline for this multi-module Maven repo by detecting which top-level Maven modules changed and then running tests/builds only for those modules (or for all modules when shared config changes).
Changes:
- Introduces
.github/workflows/ci-pipeline.ymlwith adetect-changesjob that builds a dynamic matrix of changed Maven modules. - Runs
mvn testandmvn package -DskipTestsper-module using a matrix strategy, and uploads JUnit XML reports as artifacts. - Adds a
ci-gatejob to consolidate job outcomes into a single pass/fail signal.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| permissions: | ||
| contents: read | ||
| actions: write |
There was a problem hiding this comment.
The workflow requests actions: write at the workflow level, which grants a broader token scope to every job than necessary. To follow least-privilege, restrict elevated permissions to only the job/step that needs it (e.g., artifact upload) and keep other jobs at contents: read (or omit permissions to use the default minimal set).
| actions: write |
| - "**" | ||
| pull_request: | ||
| branches: | ||
| - "main" |
There was a problem hiding this comment.
This workflow triggers on all pushes (branches: '**') and on every PR targeting main without any paths filter. Given the repo already has many module-specific *-ci.yaml workflows with path filters, this new pipeline will run in addition to them for the same PRs/commits, increasing CI load and duplicate signal. Consider narrowing triggers (add paths/paths-ignore, limit branches, or disable/replace the per-module workflows) so checks remain intentional and predictable.
| - "**" | |
| pull_request: | |
| branches: | |
| - "main" | |
| - "main" | |
| paths: | |
| - "pom.xml" | |
| - "**/pom.xml" | |
| - "**/src/**" | |
| pull_request: | |
| branches: | |
| - "main" | |
| paths: | |
| - "pom.xml" | |
| - "**/pom.xml" | |
| - "**/src/**" |
Task 1