diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9e85faba7a..63b1338129 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -76,9 +76,20 @@ jobs: fi echo "nightly=$LEAN_VERSION_STRING" >> "$GITHUB_OUTPUT" else - # Scheduled: do nothing if commit already has a different tag + # Scheduled: do nothing if commit already has a different tag (e.g. a release tag) LEAN_VERSION_STRING="nightly-$(date -u +%F)" - if [[ "$(git name-rev --name-only --tags --no-undefined HEAD 2> /dev/null || echo "$LEAN_VERSION_STRING")" == "$LEAN_VERSION_STRING" ]]; then + HEAD_TAG="$(git name-rev --name-only --tags --no-undefined HEAD 2> /dev/null || true)" + if [[ -n "$HEAD_TAG" && "$HEAD_TAG" != "$LEAN_VERSION_STRING" ]]; then + echo "HEAD already tagged as ${HEAD_TAG}, skipping nightly" + elif git rev-parse "refs/tags/${LEAN_VERSION_STRING}" >/dev/null 2>&1; then + # Today's nightly already exists (e.g. from a manual release), create a revision + REV=1 + while git rev-parse "refs/tags/${LEAN_VERSION_STRING}-rev${REV}" >/dev/null 2>&1; do + REV=$((REV + 1)) + done + LEAN_VERSION_STRING="${LEAN_VERSION_STRING}-rev${REV}" + echo "nightly=$LEAN_VERSION_STRING" >> "$GITHUB_OUTPUT" + else echo "nightly=$LEAN_VERSION_STRING" >> "$GITHUB_OUTPUT" fi fi