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
|
#!/usr/bin/env bash
|
||||||
# Resolve which HeiniRemote revision to package. Prints eval-able output:
|
# 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>
|
# ref=<tag name or commit sha>
|
||||||
#
|
#
|
||||||
# Prefers the newest v* release tag on the upstream repo; while no release tag
|
# 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
|
# UPSTREAM_URL may carry credentials (CI injects the actions token for private
|
||||||
# repos); only derived values are printed.
|
# repos); only derived values are printed.
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
@@ -22,6 +26,6 @@ if [ -n "$tag" ]; then
|
|||||||
else
|
else
|
||||||
sha=$(git ls-remote "$UPSTREAM_URL" refs/heads/main | cut -c1-12)
|
sha=$(git ls-remote "$UPSTREAM_URL" refs/heads/main | cut -c1-12)
|
||||||
[ -n "$sha" ] || { echo "ERROR: cannot resolve upstream main" >&2; exit 1; }
|
[ -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"
|
echo "ref=$sha"
|
||||||
fi
|
fi
|
||||||
Reference in new issue
Block a user