mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-18 08:36:13 +00:00
v0.114.0 binaries reported version 0.0.0 in the web UI. Two root causes, both fixed here. 1. The release build relied solely on Go's VCS stamping of info.Main.Version and never injected a version. When v0.114.0 was re-released via workflow_dispatch from `main` (one commit past the tag) with a shallow checkout, no tag was reachable, so Go stamped a v0.0.0-<ts>-<sha> pseudo-version. The asset filenames used the validated input version, so the files were named v0.114.0 but reported 0.0.0 at runtime. 2. The `release` and `workflow_dispatch` triggers followed two distinct patterns. On `release` every job's checkout landed on the tagged commit (GITHUB_SHA == tag); on `workflow_dispatch` they all built whatever branch the run started from. So a manual dispatch built the wrong source entirely (binaries and Docker images alike). Changes: - Unify both triggers on the git tag. `validate` resolves the tag once (inputs.tag on dispatch, release.tag_name on a release event), verifies it exists in git, and exposes it as an output. Every other job checks out `ref: needs.validate.outputs.tag`, so the build is always the tagged commit regardless of trigger. The dispatch path now re-releases an existing tag (push the tag first) instead of creating one from a branch; it fails fast if the tag is missing. - Inject -X main.version/commit/date into the release binaries, mirroring the Dockerfile (which has done this since #422). version/commit no longer depend on git stamping; commit is read from the checked-out HEAD (not github.sha, which on dispatch is the branch HEAD). Both binaries and Docker images take the v-prefixed tag (needs.validate.outputs.tag) so the displayed version stays "v0.114.0", matching prior releases. - Guard updateBuildInfo() in all four cmd/*/main.go so an injected version (version != "dev") is never clobbered by a VCS pseudo-version. `go install …@vX.Y.Z` still resolves the tag via build info as before. - Collapse the duplicated `if event_name == workflow_dispatch` tag derivations and route tag/version through needs.validate.outputs.*. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>