feat(continuous-integration)!: add better reporting for lint and tests#291
Merged
feat(continuous-integration)!: add better reporting for lint and tests#291
Conversation
Copilot
AI
changed the title
[WIP] Refactor CI to use dedicated actions for lint and test
Refactor: Extract build, lint, and test into dedicated composite actions
Nov 12, 2025
Co-authored-by: neilime <314088+neilime@users.noreply.github.com>
Co-authored-by: neilime <314088+neilime@users.noreply.github.com>
Co-authored-by: neilime <314088+neilime@users.noreply.github.com>
Co-authored-by: neilime <314088+neilime@users.noreply.github.com>
cc62c7e to
db1c1d3
Compare
Co-authored-by: neilime <314088+neilime@users.noreply.github.com> Signed-off-by: Emilien Escalle <emilien.escalle@escemi.com>
db1c1d3 to
893bff4
Compare
neilime
requested changes
Nov 12, 2025
…ting - Replace bash scripts with actions/github-script for better error handling - Change coverage type from "lcov" to "github" with ReportGenerator support - Use eslint-annotate-action for ESLint report processing - Use checkstyle-github-action for Checkstyle report processing - Add always() condition for post-processing steps - Update documentation to reflect new inputs and supported formats - Add jscpd:ignore markers to handle expected README duplication Co-authored-by: neilime <314088+neilime@users.noreply.github.com>
Contributor
Author
✅ All feedbacks addressed in commit ef0509d:
Note: There are jscpd warnings about duplication in README boilerplate sections (license, contributing, etc.), which is expected and intentional for consistent documentation across actions. |
Copilot
AI
changed the title
feat(continuous-integration): Extract build, lint, and test into dedicated composite actions
Refactor: Extract build, lint, and test into dedicated composite actions
Nov 12, 2025
neilime
requested changes
Nov 12, 2025
- Replace child_process with @actions/exec package - Use exec.getExecOutput for better error handling - Use node:path instead of path - Add auto-detection for lint report files (eslint-report.json, checkstyle.xml, etc.) - Add auto-detection for coverage files (cobertura-coverage.xml, lcov.info, etc.) - Update documentation to reflect auto-detection capabilities Co-authored-by: neilime <314088+neilime@users.noreply.github.com>
Contributor
Author
✅ All feedbacks addressed in commit 90dd79c:
All actions now follow GitHub Actions best practices with improved developer experience through auto-detection. |
neilime
requested changes
Nov 12, 2025
Contributor
Author
✅ All feedbacks addressed in commit dde8f0c:
Actions are now simpler with better defaults and more consistent behavior. |
2e475b4 to
5a4ce1d
Compare
Contributor
|
Code Coverage Report SummarySummary
CoverageDefault - 100%
|
b45dd88 to
3857652
Compare
- Remove require statements for path/exec (available by default in github-script) - Remove report-format input from lint action (always auto-detect) - Remove fail-on-error inputs (always fail on error for consistency) - Change test coverage default to "github" for better DX - Remove codecov-token input (always use OIDC) - Update codecov action to always use OIDC - Replace sticky-pull-request-comment with hoverkraft create-or-update-comment - Use jaxxstorm/action-install-gh-release for codecov dependencies - Remove redundant final failure checks (handled in main script) Co-authored-by: neilime <314088+neilime@users.noreply.github.com> Signed-off-by: Emilien Escalle <emilien.escalle@escemi.com>
3857652 to
c23133c
Compare
neilime
approved these changes
Nov 12, 2025
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.
Extracts build, lint, and test logic from
continuous-integration.ymlinto separate composite actions. Adds PR reporting for lint (GitHub annotations) and test (ReportGenerator + Codecov).New Composite Actions
actions/build- Build execution with env/secrets management and artifact uploadactions/lint- Linting with auto-detected report processing (ESLint JSON/Checkstyle XML → GitHub annotations)actions/test- Test execution with coverage reporting (Codecov with OIDC + ReportGenerator for PR comments)Key Features
Implementation
actions/github-scriptwith@actions/execfor better error handlingexec.getExecOutput()for proper exit code management and output captureif: always()to ensure reports are generated even on failureAuto-Detection
Lint Report Processing
eslint-annotate-actionfor ESLint JSON reportscheckstyle-github-actionfor Checkstyle XML reportsCoverage Reporters
hoverkraft-tech/ci-github-common/actions/create-or-update-commentfor PR commentsDependency Installation
jaxxstorm/action-install-gh-releasefor portable Codecov dependency installation in containersContainer Mode Support
All actions support execution inside Docker containers (e.g., pre-built CI images)
Usage
Design Decisions
fail-on-error,report-format, andcodecov-tokeninputs to reduce complexityWorkflow Impact
continuous-integration.ymlreduced from 489 to 377 lines. Jobs now delegate to composite actions while maintaining identical functionality.Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.