fix(ci): derive fallback version from commit sha only, not build date
Build and Publish HeiniRemote Agent Flatpak / build (push) Failing after 5m23s
Build and Publish HeiniRemote Agent Flatpak / build (push) Failing after 5m23s
With the build date baked into the version string, the nightly cron produced a fresh version — and thus a new tag, release and bundle — every single day even when upstream main had not moved. Key the version to the sha alone so a rebuild happens only when the source actually changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
dd609c5ff8
commit
598eea7ee6
1 file changed
+7
-3
@@ -1,10 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
# Resolve which HeiniRemote revision to package. Prints eval-able output:
|
||||
# version=<x.y.z or 0.0.0-git.<date>.<sha>>
|
||||
# version=<x.y.z or 0.0.0-git.<sha>>
|
||||
# ref=<tag name or commit sha>
|
||||
#
|
||||
# Prefers the newest v* release tag on the upstream repo; while no release tag
|
||||
# exists yet, falls back to the tip of main (version derived from the commit).
|
||||
# exists yet, falls back to the tip of main. The fallback version is derived
|
||||
# ONLY from the commit sha, NOT the build date: the version must be a pure
|
||||
# function of the source, so the nightly cron rebuilds when main actually
|
||||
# moves — not every day just because the wall clock advanced (which would spawn
|
||||
# a new tag/release/bundle daily).
|
||||
# UPSTREAM_URL may carry credentials (CI injects the actions token for private
|
||||
# repos); only derived values are printed.
|
||||
set -euo pipefail
|
||||
@@ -22,6 +26,6 @@ if [ -n "$tag" ]; then
|
||||
else
|
||||
sha=$(git ls-remote "$UPSTREAM_URL" refs/heads/main | cut -c1-12)
|
||||
[ -n "$sha" ] || { echo "ERROR: cannot resolve upstream main" >&2; exit 1; }
|
||||
echo "version=0.0.0-git.$(date +%Y%m%d).$sha"
|
||||
echo "version=0.0.0-git.$sha"
|
||||
echo "ref=$sha"
|
||||
fi
|
||||
Reference in new issue
Block a user