|
| 1 | +# Release Process |
| 2 | + |
| 3 | +## Files to update |
| 4 | +1. **`version/version.go`**: Update `fdwVersion` to the new version (e.g., `"2.2.0"`). |
| 5 | +2. **`CHANGELOG.md`**: Add a new entry at the top for the release version with the current date. |
| 6 | + |
| 7 | +## Commit |
| 8 | +- Commit message for release changes should always be the release version number (e.g., `v2.2.0`). |
| 9 | + |
| 10 | +## Release PRs |
| 11 | +When creating PRs for a release, always create two: |
| 12 | +1. Against `develop`: title should be `Merge branch '<branchname>' into develop` |
| 13 | +2. Against `main`: title should be `Release steampipe-postgres-fdw v<version>` |
| 14 | + |
| 15 | +## Tagging and Build |
| 16 | +1. Create a git tag matching the version (e.g., `v2.2.0`) on the release branch commit. |
| 17 | +2. Push the tag to origin. This triggers the **Build Draft Release** workflow (`.github/workflows/buildimage.yml`). |
| 18 | +3. The workflow builds the FDW shared library for all four platforms: |
| 19 | + - Darwin x86_64 (`macos-15-intel`) |
| 20 | + - Darwin ARM64 (`macos-latest`) |
| 21 | + - Linux x86_64 (`ubuntu-22.04`) |
| 22 | + - Linux ARM64 (`ubuntu-22.04-arm`) |
| 23 | +4. On success, it creates a **draft release** on GitHub with all build artifacts. |
| 24 | +5. Verify all build jobs pass before proceeding. |
| 25 | + |
| 26 | +## Publishing the FDW Image |
| 27 | +1. Trigger the **Publish FDW Image** workflow (`.github/workflows/publish.yml`) manually via `workflow_dispatch`. |
| 28 | + - **Branch:** `develop` |
| 29 | + - **Input `release`:** the version tag (e.g., `v2.2.0`) |
| 30 | +2. This workflow downloads the draft release assets and pushes the FDW image to `ghcr.io/turbot/steampipe/fdw:<version>`. |
| 31 | +3. Non-RC versions are also tagged as `latest`. |
| 32 | + |
| 33 | +## Testing a workflow change without releasing |
| 34 | +1. Push a temporary test tag (e.g., `v0.0.0-test-runner`) from the branch with the workflow change. |
| 35 | +2. Verify all build jobs pass. |
| 36 | +3. Clean up: delete the test tag (`git push origin --delete <tag>`) and the draft release (`gh release delete <tag> --yes`). |
0 commit comments