William Caron-Bastarache
IFT3913

GitHub Actions (Quality Gate)

CI pipeline based on PIT: baseline comparison, automatic failure on regression, and reports available via artifacts. Completed as part of my Software Quality course (IFT3913).

Summary

Implemented a quality “gate” in GitHub Actions: the build fails if the PIT mutation score decreases. A stable baseline is maintained and updated only when master is green.

Fail on mutation score regression
GitHub Actions cache (reference from master)
PIT reports uploaded as artifacts

What was added

PIT gate

Baseline vs current build comparison with immediate failure on decrease.

Stable baseline

Baseline persisted via cache and updated only on master.

Artifacts

PIT reports uploaded for debugging and inspection.

Dedicated script

Numeric (float) comparison isolated in a simple, testable script.

Scoped execution

PIT runs only on the core module to keep the pipeline efficient.

On failure

A (humorous) Rickroll is triggered when the pipeline fails.

Validation (scenarios)

Baseline (success on master)

When the build succeeds on master, the baseline is (re)generated and saved, ensuring a reliable reference for future runs.

Regression (failure on branch)

On a branch, if a PIT regression is introduced, the comparison step fails and prevents the pipeline from passing.

Contact

Questions or collaboration? Feel free to reach out.