chore: make releases workflow-only

This commit is contained in:
Micheal Wilkinson
2026-03-20 19:23:43 +00:00
parent fd7660721a
commit 5cb0010531
5 changed files with 12 additions and 33 deletions

View File

@@ -62,7 +62,13 @@ jobs:
- name: Prepare release files - name: Prepare release files
run: | run: |
set -euo pipefail set -euo pipefail
./script/prepare-release.sh "$RELEASE_VERSION" go run ./cmd/vociferate \
--root . \
--version "$RELEASE_VERSION" \
--date "$(date -u +%F)" \
--version-file internal/vociferate/version/version.go \
--version-pattern 'const String = "([^"]+)"' \
--changelog changelog.md
- name: Run tests - name: Run tests
run: | run: |
@@ -181,15 +187,11 @@ jobs:
normalized_version="${RELEASE_VERSION#v}" normalized_version="${RELEASE_VERSION#v}"
mkdir -p dist mkdir -p dist
for target in darwin/amd64 darwin/arm64 linux/amd64 linux/arm64 windows/amd64 windows/arm64; do for target in linux/amd64 linux/arm64; do
os="${target%/*}" os="${target%/*}"
arch="${target#*/}" arch="${target#*/}"
ext=""
if [[ "$os" == "windows" ]]; then
ext=".exe"
fi
bin="vociferate_${normalized_version}_${os}_${arch}${ext}" bin="vociferate_${normalized_version}_${os}_${arch}"
GOOS="$os" GOARCH="$arch" go build -trimpath -ldflags="-s -w" -o "dist/${bin}" ./cmd/vociferate GOOS="$os" GOARCH="$arch" go build -trimpath -ldflags="-s -w" -o "dist/${bin}" ./cmd/vociferate
done done

View File

@@ -56,14 +56,10 @@ just go-test
## Release Artifacts ## Release Artifacts
The `Prepare Release` workflow creates a release and uploads prebuilt `vociferate` binaries for: Releases are prepared through the `Prepare Release` workflow. The workflow creates a release and uploads prebuilt `vociferate` binaries for:
- `darwin/amd64`
- `darwin/arm64`
- `linux/amd64` - `linux/amd64`
- `linux/arm64` - `linux/arm64`
- `windows/amd64`
- `windows/arm64`
It also uploads `checksums.txt` for integrity verification. It also uploads `checksums.txt` for integrity verification.
If a release already exists for the same tag, the workflow updates its release notes and replaces matching asset filenames so reruns stay in sync. If a release already exists for the same tag, the workflow updates its release notes and replaces matching asset filenames so reruns stay in sync.

View File

@@ -11,6 +11,8 @@ A `### Breaking` section is used in addition to Keep a Changelog's standard sect
### Changed ### Changed
- Release preparation now runs directly in the release workflow; the repository-local helper script and just recipe were removed.
- Release artifacts are now limited to `linux/amd64` and `linux/arm64` binaries plus `checksums.txt`.
- The CLI entrypoint, internal package paths, build outputs, and automation references now use the `vociferate` name instead of the earlier `releaseprep` naming. - The CLI entrypoint, internal package paths, build outputs, and automation references now use the `vociferate` name instead of the earlier `releaseprep` naming.
- The release workflow and composite action now treat a provided `version` as an override and otherwise fall back to the recommended next version automatically. - The release workflow and composite action now treat a provided `version` as an override and otherwise fall back to the recommended next version automatically.
- Release creation is now idempotent: existing releases for the same tag are updated in place instead of recreated. - Release creation is now idempotent: existing releases for the same tag are updated in place instead of recreated.

View File

@@ -9,6 +9,3 @@ go-build:
go-test: go-test:
go test ./... go test ./...
prepare-release version:
./script/prepare-release.sh "{{version}}"

View File

@@ -1,18 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
if [[ $# -ne 1 ]]; then
echo "usage: $0 <version>" >&2
exit 2
fi
repo_root="$(cd "$(dirname "$0")/.." && pwd)"
release_date="$(date -u +%F)"
go run ./cmd/vociferate \
--root "$repo_root" \
--version "$1" \
--date "$release_date" \
--version-file internal/vociferate/version/version.go \
--version-pattern 'const String = "([^"]+)"' \
--changelog changelog.md