ci(release): make release notes idempotent and publish binaries

This commit is contained in:
Micheal Wilkinson
2026-03-20 18:41:49 +00:00
parent adbcfbc1ac
commit 71e411e12d
2 changed files with 170 additions and 0 deletions

View File

@@ -51,3 +51,53 @@ Defaults:
```bash
just go-test
```
## Release Artifacts
The `Prepare Release` workflow creates a release and uploads prebuilt `vociferate` binaries for:
- `darwin/amd64`
- `darwin/arm64`
- `linux/amd64`
- `linux/arm64`
- `windows/amd64`
- `windows/arm64`
It also uploads `checksums.txt` for integrity verification.
If a release already exists for the same tag, the workflow replaces it so release notes and attached binaries stay in sync.
## Reuse In Other Repositories
You can reuse vociferate in two ways.
Use the composite action directly:
```yaml
- name: Prepare release files
uses: git.hrafn.xyz/aether/vociferate@main
with:
version: v1.2.3
version-file: internal/myapp/version/version.go
version-pattern: 'const Version = "([^"]+)"'
changelog: changelog.md
```
Call the reusable release workflow:
```yaml
name: Release
on:
workflow_dispatch:
inputs:
version:
description: Semantic version to release.
required: true
jobs:
release:
uses: aether/vociferate/.gitea/workflows/prepare-release.yml@main
with:
version: ${{ inputs.version }}
secrets: inherit
```