CI/CD Integration
Capability regression check
Section titled “Capability regression check”Assert that a server’s capabilities haven’t changed from a known baseline:
- name: Check FHIR capability regression run: | npx fhir-capability-analyzer compare \ ./fixtures/capability-baseline.json \ ${{ vars.FHIR_SERVER_URL }} \ --exit-on-diffProfile conformance assertion
Section titled “Profile conformance assertion”Analyze the server and parse JSON output to assert a specific profile is detected:
result=$(npx fhir-capability-analyzer analyze $FHIR_SERVER_URL --format json)echo "$result" | jq -e '.conformance.detectedProfiles[] | select(.standard == "US Core")' > /dev/nullecho "US Core profile detected ✓"Zero-warning check
Section titled “Zero-warning check”Exit code 1 when warnings are found (text/markdown mode):
- name: Analyze FHIR server — fail on warnings run: npx fhir-capability-analyzer analyze ${{ vars.FHIR_SERVER_URL }}Capture baseline
Section titled “Capture baseline”Create a baseline CapabilityStatement snapshot:
npx fhir-capability-analyzer analyze https://server.example.com --format json \ | jq '.server' > ./fixtures/capability-baseline.jsonGitHub Actions example
Section titled “GitHub Actions example”name: FHIR server capability checkon: schedule: - cron: "0 6 * * 1" # every Monday morning workflow_dispatch:
jobs: capability-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20
- name: Analyze server run: | npx fhir-capability-analyzer analyze ${{ vars.FHIR_SERVER_URL }} \ --format json > capability-report.json
- name: Upload report uses: actions/upload-artifact@v4 with: name: capability-report path: capability-report.json
- name: Compare against baseline run: | npx fhir-capability-analyzer compare \ ./fixtures/baseline.json \ ${{ vars.FHIR_SERVER_URL }} \ --exit-on-diff