76 Commits

Author SHA1 Message Date
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
Micheal Wilkinson
4ae6f34931 docs: update action and README to reflect changelog-based versioning default
All checks were successful
Push Validation / validate (push) Successful in 54s
- action.yml: clarify that version-file triggers version-file-based
  resolution and that omitting it causes the version to be derived from
  the changelog; note version-pattern is only required when version-file
  is set.
- README: replace stale reference to the plain-text release-version file
  as the default with an accurate description of changelog-based
  versioning as the default, directing users to set version-file and
  version-pattern only for repos with source-embedded versioning.
2026-03-20 20:12:38 +00:00
Micheal Wilkinson
8c2835fe2e feat: derive recommended version from changelog; no version file required
- RecommendedTag now reads the current version from the most recent
  released section heading in the changelog (## [x.y.z] - ...) when no
  --version-file flag is given, removing the dependency on a separate
  version file for recommendation.
- When the changelog contains no prior releases, the base version
  defaults to 0.0.0, so the first recommended tag is v1.0.0 (or higher
  depending on unreleased content).
- Prepare creates the release-version file if it does not already exist,
  so new repositories do not need to pre-seed it.
- Add tests covering changelog-based version resolution, first-release
  default, and automatic file creation.
- Update README and changelog unreleased section to document the new
  behaviour.
2026-03-20 20:10:13 +00:00
Micheal Wilkinson
c859a3fccb ci: split prepare and publish into separate release pipelines
All checks were successful
Push Validation / validate (push) Successful in 54s
- Remove publish steps (release creation, binary build/upload) from the
  Prepare Release workflow; it now stops after committing and pushing the
  tag.
- Add Do Release workflow triggered on v*.*.* tag pushes; reads release
  notes from the tagged changelog section, creates or updates the release,
  builds linux/amd64 and linux/arm64 binaries, uploads assets, then
  smoke-tests both binaries in a follow-on validate job.
- Remove the standalone Action Validation workflow; binary validation now
  runs as a second job in Do Release after the release job succeeds, using
  the exact tag and version just published.
- Update README to document the two-workflow release model and add split
  prepare/publish usage examples for both the composite action and the
  reusable workflows.
- Update changelog unreleased section to reflect the new pipeline split
  and corrected artifact scope (linux/amd64 and linux/arm64 only).
2026-03-20 19:55:03 +00:00
Micheal Wilkinson
26b197299f chore: consolidate unreleased changelog entries 2026-03-20 19:40:48 +00:00
Micheal Wilkinson
4a3db8c08c remove: incorrect release file 2026-03-20 19:38:53 +00:00
Micheal Wilkinson
2646d42523 feat: default to release-version file
Some checks failed
Action Validation / validate-released-binary (amd64, ./vociferate, X64) (push) Failing after 6s
Action Validation / validate-released-binary (arm64, qemu-aarch64-static ./vociferate, ARM64) (push) Failing after 23s
Push Validation / validate (push) Successful in 52s
2026-03-20 19:32:49 +00:00
Micheal Wilkinson
a413385c4e feat: cache release binary in action 2026-03-20 19:28:02 +00:00
Micheal Wilkinson
5cb0010531 chore: make releases workflow-only 2026-03-20 19:23:43 +00:00
Micheal Wilkinson
fd7660721a docs(changelog): Revert aborted 1.0 release 2026-03-20 19:18:53 +00:00
Micheal Wilkinson
8fefbf1997 refactor: rename releaseprep to vociferate 2026-03-20 19:16:51 +00:00
Micheal Wilkinson
7a5b371539 docs(changelog): reverting aborted release
All checks were successful
Push Validation / validate (push) Successful in 52s
2026-03-20 19:02:27 +00:00
Micheal Wilkinson
cb6723818b chore(go): Implement unconditional prefix trim 2026-03-20 19:00:24 +00:00
gitea-actions[bot]
ddb99c482c release: prepare v1.0.0 2026-03-20 18:57:53 +00:00
Micheal Wilkinson
9da7a251b2 refactor(changelog): update unreleased since v1.0.0
All checks were successful
Push Validation / validate (push) Successful in 54s
2026-03-20 18:52:34 +00:00
Micheal Wilkinson
971a7744bf fix(releaseprep): green unchanged-version prepare 2026-03-20 18:52:34 +00:00
Micheal Wilkinson
d1d5673460 test(releaseprep): red for unchanged-version prepare 2026-03-20 18:52:33 +00:00
Micheal Wilkinson
8fadb8299c ci(release): upsert release and replace matching assets
All checks were successful
Push Validation / validate (push) Successful in 52s
2026-03-20 18:43:49 +00:00
Micheal Wilkinson
71e411e12d ci(release): make release notes idempotent and publish binaries 2026-03-20 18:43:49 +00:00
gitea-actions[bot]
adbcfbc1ac release: prepare v1.0.0 2026-03-20 18:34:10 +00:00
Micheal Wilkinson
e43d3f3301 docs(changelog): note breaking heading major bump behavior
All checks were successful
Push Validation / validate (push) Successful in 59s
2026-03-20 18:27:23 +00:00
Micheal Wilkinson
f140ea1d70 feat(releaseprep): force major bump on Breaking heading 2026-03-20 18:27:09 +00:00
Micheal Wilkinson
5c0653e28e test(releaseprep): require major bump for Breaking heading 2026-03-20 18:26:54 +00:00
Micheal Wilkinson
7ca6002b2b docs(changelog): add initial unreleased notes 2026-03-20 18:26:21 +00:00
Micheal Wilkinson
caf0b6db76 feat(releaseprep): migrate standalone tool into vociferate 2026-03-20 18:26:11 +00:00
Micheal Wilkinson
2060af6a78 test(releaseprep): add failing migration test suite 2026-03-20 18:22:45 +00:00