- Add
workflow_dispatchtrigger with a requiredtaginput - Add
resolve-tagjob that validates the tag exists and outputs the effective tag - All jobs check out the resolved tag via
ref: - Build ldflags version uses resolved tag
- GitHub Release step uses
tag_nameandprereleasefrom resolved tag - Fix concurrency group: use
github.ref_name(notgithub.ref) so push and dispatch paths produce the same format for the same tag - Fix shell injection: pass
inputs.tagviaenv:and validate with a POSIX character allowlist before writing to$GITHUB_OUTPUT; useenv:in validate step too
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.