Staging, Versioning & CI
Reproducible builds are the foundation of reliable IG delivery. These patterns ensure that what works on your laptop works in CI, that consumers can trust version numbers, and that every pull request produces a previewable site. The goal is to eliminate 'works on my machine' problems and give reviewers confidence in what they're approving.
CI and versioning patterns address build reliability and release management:
- Local builds differ from CI results
- Consumers don't know which versions are stable
- No preview for pull request reviews
- Tracking upstream changes during co-development is manual and error-prone
- Release builds need more validation than feature builds
The Staging, Versioning & CI provide essential capabilities:
SemVer and Release Channels
Publish predictable versions and previews so consumers know what to expect. CI builds provide instant feedback, snapshots let integrators test against latest, and releases provide stable baselines for production use.
Key Benefits: - Discoverable artifacts
Local Build Parity
Ensure the same toolchain runs locally and in CI
Key Benefits: - Fewer "works on my machine" issues
GitHub Actions Pipeline
Establish standard CI for GitHub-hosted IG repositories that builds, validates, and deploys on every push. Reviewers can see rendered output before merging, and releases are automated from tags.
Key Benefits: - Rapid reviews
GitLab CI Pipeline
Establish standard CI for GitLab-hosted IG repositories, providing equivalent capabilities to the GitHub Actions pipeline. Essential for organisations using GitLab for private hosting or enterprise features.
Key Benefits: - Parity with GitHub workflows - Works with self-hosted GitLab
Current Version Dependency
Use the special current version symbol to depend on the latest CI build of an upstream IG, enabling rapid integration testing during active co-development phases.
Key Benefits: - Faster feedback on integration issues - No manual version bumping during co-development - Early detection of breaking changes
Auto-Builder vs Local Builds
Use the HL7 IG Auto-Builder for rapid feedback during feature development, reserving local builds for release preparation and downstream integration testing.
Key Benefits: - Fast iteration during development - Thorough validation before release - Catches integration issues early