Moves changelog link generation from inline heading format
## [1.1.0](https://...) - date
to reference-style definitions at the bottom of the file
## [1.1.0] - date
...
[Unreleased]: https://.../src/branch/main
[1.1.0]: https://.../releases/tag/v1.1.0
This keeps headings plain, which simplifies changelog parsing (the
awk pattern in publish/action.yml now matches without special-casing
the inline URL), and follows the canonical Keep a Changelog style.
- Link Unreleased heading to repository main branch.
- Link release headings to release tag pages.
- Derive repository URL from CI metadata or origin git remote.
- Keep plain headings when repository URL cannot be resolved.
- Update tests and README usage docs for linked heading behavior.
- Update prepare-release to call do-release via workflow_call after tag creation.
- Update README examples and release-flow docs to reflect direct invocation
instead of relying only on tag-push triggers.
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.
- 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.
- 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
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.
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.
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.