ci(forgejo): port release workflows #146

Merged
barrettruth merged 1 commit from ci/forgejo-release-workflows into main 2026-05-01 22:27:48 +00:00
Owner

Summary

  • add Forgejo-native prepare, publish, and nightly release workflows
  • add a shared scripts/forgejo-release.sh release driver for PR creation, tag/release publication, nightly aliases, and conservative git-log release notes
  • document the Forgejo release process and add curl, git, and jq to the shared dev shell for release automation

Cautious port notes

  • no workflow_run dependency; publish is manually dispatched after the stable-version PR lands and push quality checks are green
  • nightly is daily/manual and refuses to mutate tags/releases unless main's push quality contexts are green, unless explicitly overridden
  • release notes are generated from git history because Forgejo does not expose GitHub's generated-release-notes API
  • workflow syntax avoids GitHub-only permissions: blocks and relies on Forgejo's injected FORGEJO_TOKEN environment

Verification

  • nix-shell -p yq-go --run 'for f in .forgejo/workflows/release_*.yaml; do yq eval . "$f" >/dev/null; done'
  • direnv exec /home/barrett/dev/tmux-mosaic just format
  • direnv exec /home/barrett/dev/tmux-mosaic just lint
  • nix develop .#ci --command bats tests/integration/release_version.bats
  • nix develop .#ci --command just test passed on rerun; first full run hit known unrelated new-pane fast paths: grid 2 -> 3 timing flake, isolated rerun passed
  • dry-run guard check: forgejo-release.sh nightly in a temp clone stopped before mutation because current main has quality / Test (push) failing
## Summary - add Forgejo-native prepare, publish, and nightly release workflows - add a shared `scripts/forgejo-release.sh` release driver for PR creation, tag/release publication, nightly aliases, and conservative git-log release notes - document the Forgejo release process and add `curl`, `git`, and `jq` to the shared dev shell for release automation ## Cautious port notes - no `workflow_run` dependency; publish is manually dispatched after the stable-version PR lands and push quality checks are green - nightly is daily/manual and refuses to mutate tags/releases unless main's push quality contexts are green, unless explicitly overridden - release notes are generated from git history because Forgejo does not expose GitHub's generated-release-notes API - workflow syntax avoids GitHub-only `permissions:` blocks and relies on Forgejo's injected `FORGEJO_TOKEN` environment ## Verification - `nix-shell -p yq-go --run 'for f in .forgejo/workflows/release_*.yaml; do yq eval . "$f" >/dev/null; done'` - `direnv exec /home/barrett/dev/tmux-mosaic just format` - `direnv exec /home/barrett/dev/tmux-mosaic just lint` - `nix develop .#ci --command bats tests/integration/release_version.bats` - `nix develop .#ci --command just test` passed on rerun; first full run hit known unrelated `new-pane fast paths: grid 2 -> 3` timing flake, isolated rerun passed - dry-run guard check: `forgejo-release.sh nightly` in a temp clone stopped before mutation because current main has `quality / Test (push)` failing
ci(forgejo): port release workflows
All checks were successful
quality / Format (pull_request) Successful in 15s
quality / Lint (pull_request) Successful in 20s
quality / Test (pull_request) Successful in 2m32s
ab20d86e51
barrettruth deleted branch ci/forgejo-release-workflows 2026-05-01 22:27:48 +00:00
Sign in to join this conversation.
No description provided.