ci: derive binary version from git describe instead of a hardcoded string

main.go's version var now defaults to "dev" for local builds and is
overridden at build time via -ldflags "-X main.version=...". The
release workflow computes VERSION with `git describe --tags --always
--dirty` (fetch-depth: 0 so tags are available) and injects it into
the Go build inside the container.
This commit is contained in:
2026-07-10 00:13:35 +02:00
parent 72efcb13ba
commit e823411c82
2 changed files with 7 additions and 2 deletions

View File

@@ -26,11 +26,16 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Build (${{ matrix.arch }})
run: |
set -o pipefail
VERSION="$(git describe --tags --always --dirty)"
echo "Version: $VERSION"
# Crea il container senza avviarlo
CID=$(docker create \
--platform ${{ matrix.platform }} \
@@ -46,7 +51,7 @@ jobs:
docker exec "$CID" sh -c "
${{ matrix.upx_install }}
export CGO_ENABLED=0
go build -trimpath -ldflags='-s -w' -o /src/dist/todotxt2remind .
go build -trimpath -ldflags='-s -w -X main.version=$VERSION' -o /src/dist/todotxt2remind .
upx /src/dist/todotxt2remind
" 2>&1 | cat

View File

@@ -15,7 +15,7 @@ var (
outputFile string
debug bool
indent int
version = "v3.0.0"
version = "dev" // overridden at build time via -ldflags "-X main.version=..."
)
func main() {