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

View File

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