Eliminate double towncrier run in release workflow (#199)
## Summary - Added a new `build_quartz` Dagger function that builds the Quartz site from a pre-processed source tree (no towncrier) - Reordered the release workflow so towncrier runs **once** on the runner, then passes the updated working tree to `build-quartz` - `build_docs` and `build_changelog` are preserved for standalone use — `build_docs` now delegates to `build_quartz` internally ## Motivation Previously towncrier ran twice per release: once inside a Dagger container (via `build_docs` → `build_changelog`) and once on the runner to capture CHANGELOG.md changes for the git commit. This was wasteful and fragile — if towncrier behavior changed, the two runs could produce different results. ## Test plan - [ ] Review diff to confirm workflow step ordering is correct - [ ] Trigger a release and confirm towncrier runs only once - [ ] Verify the docs tarball contains the updated CHANGELOG.md - [ ] `dagger call build-quartz --src=. --version=vX.Y.Z` should work standalone Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/199
This commit is contained in:
parent
627e2b7894
commit
779b7d6709
5 changed files with 21 additions and 45 deletions
1
docs/changelog.d/eliminate-double-towncrier.infra.md
Normal file
1
docs/changelog.d/eliminate-double-towncrier.infra.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Eliminate double towncrier run in release workflow — changelog is now built once on the runner, then the pre-processed source tree is passed to a new `build_quartz` Dagger function for the Quartz site build only.
|
||||
|
|
@ -26,7 +26,7 @@ Direct link: https://forge.ops.eblu.me/eblume/blumeops/actions?workflow=build-bl
|
|||
The `build-blumeops` workflow (`.forgejo/workflows/build-blumeops.yaml`):
|
||||
|
||||
1. **Resolves version** — Uses input or auto-increments from latest release
|
||||
2. **Builds changelog** — Calls `dagger call build-changelog` (towncrier in a container)
|
||||
2. **Builds changelog** — Runs towncrier on the runner to update `CHANGELOG.md`
|
||||
3. **Builds docs** — Calls `dagger call build-docs` (Quartz build in a container)
|
||||
4. **Creates release** — Uploads `docs-<version>.tar.gz` to Forgejo releases
|
||||
5. **Updates deployment** — Edits `argocd/manifests/docs/deployment.yaml` with new URL
|
||||
|
|
|
|||
|
|
@ -27,8 +27,7 @@ Build engine for BlumeOps CI/CD pipelines. Replaces shell-based build scripts wi
|
|||
|----------|-----------|-------------|
|
||||
| `build` | `(src, container_name) → Container` | Build a container from `containers/<name>/Dockerfile` |
|
||||
| `publish` | `(src, container_name, version, registry?) → str` | Build and push to registry (default: `registry.ops.eblu.me`) |
|
||||
| `build_changelog` | `(src, version) → Directory` | Run towncrier to collect changelog fragments |
|
||||
| `build_docs` | `(src, version) → File` | Build changelog then Quartz site, return docs tarball |
|
||||
| `build_docs` | `(src, version) → File` | Build Quartz docs site, return docs tarball |
|
||||
|
||||
## CLI Examples
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue