#!/usr/bin/env bash # Resolve which HeiniRemote revision to package. Prints eval-able output: # version=.> # ref= # # 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). # UPSTREAM_URL may carry credentials (CI injects the actions token for private # repos); only derived values are printed. set -euo pipefail UPSTREAM_URL="${UPSTREAM_URL:-https://git.pc-heini.de/pc-heini/HeiniRemote.git}" tag=$(git ls-remote --tags "$UPSTREAM_URL" 'refs/tags/v*' \ | awk -F'refs/tags/' '{print $2}' \ | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' \ | sort -V | tail -n1 || true) if [ -n "$tag" ]; then echo "version=${tag#v}" echo "ref=$tag" 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 "ref=$sha" fi