Skip to content

Auto-Builder vs Local Builds

Intent

Use the HL7 IG Auto-Builder for rapid feedback during feature development, reserving local builds for release preparation and downstream integration testing.

Implementation Considerations

IG Auto-Builder for feature work

The HL7 IG Auto-Builder (build.fhir.org) provides free CI for FHIR IGs hosted on GitHub. Use it for most development work. - Push to GitHub triggers automatic build within minutes - Results published to build.fhir.org/ig/{org}/{repo}/branches/{branch} - QA report highlights errors and warnings - No local toolchain setup required for contributors - Ideal for: feature branches, PR reviews, documentation updates

Local builds for releases

Run local builds for release candidates to catch issues the auto-builder might miss and to perform downstream testing. - Full control over IG Publisher version (pin to release version) - Run downstream validation tools like Inferno test suites - Test against local terminology servers if needed - Validate example resources against external validators - Generate and review full QA report before tagging

Downstream testing with Inferno

Before releasing, validate that the IG works with downstream testing tools that implementers will use. - Run Inferno test kit against example resources - Verify CapabilityStatement aligns with test expectations - Check that Must Support elements are testable - Document known test gaps in release notes

Release build checklist

  • Switch all current dependencies to pinned versions
  • Run local build with pinned IG Publisher version
  • Review QA report — zero errors, minimal warnings
  • Run Inferno or other downstream test suites
  • Verify package.tgz contents and metadata
  • Tag release only after all checks pass

Benefits

  • Fast iteration during development
  • Thorough validation before release
  • Catches integration issues early

Trade-offs

  • Two different workflows to manage
  • Local builds require toolchain setup
  • Downstream testing adds release overhead

Auto-builder for PRs, local for releases

Let the auto-builder handle all PR builds. Reserve local builds for the release candidate phase when you need full control and downstream testing.