Skip to content

CI/CD Setup

PropWatch is designed to run in pull request pipelines. The general pattern is the same across all platforms:

  1. Checkout with full git history (fetch-depth: 0)
  2. Fetch the base branch if it's not already available
  3. Run PropWatch with --base origin/<target-branch>
  4. Upload the JUnit report as a test artifact

Platforms

PlatformGuideMethod
GitHub ActionsOfficial action
Bitbucket Pipelinesbunx or Docker
GitLab CIDocker or npx
CircleCInpx or Docker
Azure DevOpsnpx or Docker
JenkinsDocker or npx
Buildkitenpx or Docker
Docker (generic)Any platform

Common options

bash
propwatch \
  --base origin/main \
  --reporter console,junit \
  --output ./test-reports \
  --exit-on-breaking

Exit codes

CodeMeaning
0Success — no breaking changes (or --exit-on-breaking not set)
1Breaking changes detected (requires --exit-on-breaking)
1Scan 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 — junit annotate plugin

Released under the MIT License