postit-debian: support POSTIT_GIT_TAG as a tag (not just a branch)

The previous override_dh_auto_build used 'git clone --branch <tag>'
which only accepts branch names. Feeding it 1.0.1-rc02 (a tag,
not yet pushed to origin) failed with 'La branche distante
1.0.1-rc02 n'a pas ete trouvee' and aborted the package build.

Switch to a 'git init + remote add + fetch --depth=1 origin <ref>
+ checkout FETCH_HEAD' sequence, which works for both branches
and tags, including local-only tags fetched via file:// (the
typical RC-staging workflow: 'git tag' on the local checkout,
then 'make POSTIT_GIT_URL=file:///... POSTIT_GIT_TAG=<tag>'
before pushing).

The fetch error now carries a diagnostic that points the operator
at the file:// override and at the missing 'git push'.

Adds tests/test-fetch-upstream.sh with four cases against the
real pazof/yavsc remote and a synthetic local repo: tag on
GitHub, branch on GitHub, .git reuse, and tag via file://.
Wired into 'make test'.
This commit is contained in:
Lum 2026-06-28 13:47:15 +01:00
commit 7f57952a92
3 changed files with 202 additions and 8 deletions

View file

@ -4,6 +4,11 @@
# make deb : build a .deb in the parent directory (or
# $POSTIT_OUT_DIR if set). Equivalent to
# dpkg-buildpackage -us -uc -b.
# make test : run the non-regression tests under tests/.
# The fetch test pins the upstream Git mechanics
# that previously regressed on tag-vs-branch
# handling (1.0.1-rc02). Set SKIP_NETWORK_TESTS=1
# to skip the GitHub-egress parts.
# make clean : rm -rf build/ and the per-package staging tree
# under debian/postit.
# make source : fetch the upstream yavsc source tree under
@ -21,7 +26,7 @@ POSTIT_GIT_TAG ?= 1.0.0
POSTIT_RUNTIME ?= linux-x64
POSTIT_OUT_DIR ?= $(CURDIR)/..
.PHONY: deb clean source
.PHONY: deb clean source test
deb:
@echo " POSTIT_GIT_TAG=$(POSTIT_GIT_TAG) POSTIT_RUNTIME=$(POSTIT_RUNTIME) POSTIT_GIT_URL=$(POSTIT_GIT_URL)"
@ -49,3 +54,6 @@ source:
mkdir -p build
git clone --depth=1 --branch $(POSTIT_GIT_TAG) \
$(POSTIT_GIT_URL) build/yavsc-src
test:
@bash tests/test-fetch-upstream.sh