CI/CD Setup
PropWatch is designed to run in pull request pipelines. The general pattern is the same across all platforms:
- Checkout with full git history (
fetch-depth: 0) - Fetch the base branch if it's not already available
- Run PropWatch with
--base origin/<target-branch> - Upload the JUnit report as a test artifact
Platforms
| Platform | Guide | Method |
|---|---|---|
| GitHub Actions | → | Official action |
| Bitbucket Pipelines | → | bunx or Docker |
| GitLab CI | → | Docker or npx |
| CircleCI | → | npx or Docker |
| Azure DevOps | → | npx or Docker |
| Jenkins | → | Docker or npx |
| Buildkite | → | npx or Docker |
| Docker (generic) | → | Any platform |
Common options
bash
propwatch \
--base origin/main \
--reporter console,junit \
--output ./test-reports \
--exit-on-breakingExit codes
| Code | Meaning |
|---|---|
0 | Success — no breaking changes (or --exit-on-breaking not set) |
1 | Breaking changes detected (requires --exit-on-breaking) |
1 | Scan error (invalid base ref, git failure, etc.) |
By default PropWatch always exits 0. Pass --exit-on-breaking to fail the pipeline step on breaking changes.
Test reports
The JUnit reporter (--reporter junit) produces propwatch-junit.xml, compatible with:
- GitHub Actions — via
actions/upload-artifact - Bitbucket Test Management — upload as a test artifact
- GitLab CI —
artifacts.reports.junit - CircleCI —
store_test_results - Azure DevOps —
PublishTestResults@2 - Jenkins — JUnit plugin
- Buildkite —
junitannotate plugin