From 62583fa93cd0a600f03caa6f0e7eaf0544d69a8c Mon Sep 17 00:00:00 2001 From: Bryce Kwon Date: Sun, 19 Jul 2026 15:06:12 -1000 Subject: Keep the version fallback in shallow builds A checkout without tags made git describe fail and the empty result overwrote the fallback, so CI release binaries carried no version at all. The release workflow now also fetches tags so a tag build stamps its exact version. --- .github/workflows/release.yml | 4 ++++ source/gen-version.sh | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7269512..12226f9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,6 +16,10 @@ jobs: - uses: actions/checkout@v7 with: submodules: recursive + # Tags let git describe stamp the exact release version into + # the binary rather than the Makefile fallback. + fetch-tags: true + fetch-depth: 0 - name: Install build dependencies run: | sudo apt-get update diff --git a/source/gen-version.sh b/source/gen-version.sh index 23d0d0b..fb7d459 100755 --- a/source/gen-version.sh +++ b/source/gen-version.sh @@ -9,10 +9,12 @@ V=$1 OUT=${2:-VERSION} -# Prefer `git describe` when run at the top of the cgit working tree. +# Prefer `git describe` when run at the top of the cgit working tree, +# keeping the fallback when it fails, as in a shallow tagless clone. if test "$(git rev-parse --git-dir 2>/dev/null)" = '.git' then - V=$(git describe --abbrev=4 HEAD 2>/dev/null) + D=$(git describe --abbrev=4 HEAD 2>/dev/null) + test -n "$D" && V=$D fi new="CGIT_VERSION = $V" -- cgit 2.12.1