8 Commits

Author SHA1 Message Date
Micheal Wilkinson
ba715d9965 feat: migrate changelog path to CHANGELOG.md 2026-03-21 00:27:18 +00:00
Micheal Wilkinson
1959aa33d8 feat: read repository base URL from workflow vars 2026-03-20 23:52:12 +00:00
Micheal Wilkinson
63aa7376cc fix: fail prepare when release tag already exists
Some checks failed
Push Validation / validate (push) Has been cancelled
Prevent silent successful runs that skip tag creation. If the resolved
release tag already exists locally or remotely, fail with guidance so users
know why tag-triggered do-release will not run.
2026-03-20 21:29:54 +00:00
Micheal Wilkinson
e8e1dc9695 fix: make prepare action resilient for reruns
Some checks failed
Push Validation / validate (push) Has been cancelled
- Disable setup-go module cache path in prepare action's source-run mode
  to avoid invalid '..' cache-dependency-path patterns.
- Make commit/tag step idempotent when release tag already exists locally
  or remotely.
- Skip empty commit attempts when no release files changed while still
  allowing first-time tag creation.
2026-03-20 21:24:52 +00:00
Micheal Wilkinson
bab7b74da8 refactor: internalize auth and cache token wiring in prepare flow
- Remove token and cache-token from public action inputs
- Always use github.token internally for downloads/push
- Read fixed cache token from VOCIFERATE_CACHE_TOKEN env
- Add explicit 'Resolve cache token' step before prepare/tag in
  prepare-release workflow and pass it via env
2026-03-20 20:47:19 +00:00
Micheal Wilkinson
011cca2334 feat: add repository-scoped cache token for action binaries
Add a new optional cache-token input to both published actions.

- Default cache key token is now action_repository + release_tag.
- Cache key uses this token plus runner architecture.
- prepare-release workflow passes github.sha as a fixed token.

This prevents cross-repository cache collisions when consumers pull
vociferate binaries produced by this repository.
2026-03-20 20:40:56 +00:00
Micheal Wilkinson
b793e1b289 feat: use go run from source when action ref is @main
When github.action_ref is not a semver tag (e.g. main), skip binary
download and run vociferate directly via 'go run ./cmd/vociferate' from
the action's own source directory (GITHUB_ACTION_PATH). A conditional
Setup Go step installs the toolchain only on that path.

When pinned to a semver tag (v*), the existing prebuilt binary download
and cache behaviour is unchanged.

This makes the prepare-release workflow self-contained on main — it no
longer requires a published release to bootstrap itself.
2026-03-20 20:34:46 +00:00
Micheal Wilkinson
647d8cf76f feat: add prepare and publish composite actions
Add two focused subdirectory composite actions:

- prepare/action.yml: downloads the vociferate binary, runs it to update
  changelog and release-version, then commits, tags, and pushes — replacing
  the boilerplate git steps consumers previously had to write inline.

- publish/action.yml: extracts the matching changelog section and creates or
  updates the Gitea/GitHub release. Outputs release-id, tag, and version so
  consumers can upload their own assets after it runs.

Simplify the vociferate workflows to use ./prepare and ./publish directly,
validating both actions in the self-release pipeline.

Update README to show the clean two-action usage pattern.
2026-03-20 20:27:22 +00:00