..that wasn't the last

This commit is contained in:
lily 2025-08-23 09:26:26 +10:00
parent 7c93d5e9ff
commit eb6a4e7aba

View file

@ -61,21 +61,27 @@ jobs:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Get latest tag - name: Get latest unique tag
id: get_tag id: get_tag
run: | run: |
# Get the latest tag, or default to v0.0.0 if no tags exist LATEST_TAG=$(git tag --sort=-v:refname | head -n1 || echo "v0.0.0")
LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0") NEW_TAG=""
echo "LATEST_TAG=$LATEST_TAG" >> $GITHUB_ENV if [[ "$LATEST_TAG" =~ ^v([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]; then
MAJOR=${BASH_REMATCH[1]}
# Increment the patch version for the new release MINOR=${BASH_REMATCH[2]}
# Assuming tags are in semver format like vX.Y.Z PATCH=${BASH_REMATCH[3]}
if [ "$LATEST_TAG" = "v0.0.0" ]; then while : ; do
NEW_TAG="v0.0.1" PATCH=$((PATCH + 1))
CANDIDATE_TAG="v$MAJOR.$MINOR.$PATCH"
if ! git rev-parse "$CANDIDATE_TAG" >/dev/null 2>&1; then
NEW_TAG=$CANDIDATE_TAG
break
fi
done
else else
NEW_PATCH=$(echo $LATEST_TAG | awk -F. '{$NF = $NF + 1;} 1' | sed 's/ /./g') NEW_TAG="v0.0.1"
NEW_TAG="v${NEW_PATCH#v}" # Remove 'v' if present from the awk output
fi fi
echo "LATEST_TAG=$LATEST_TAG" >> $GITHUB_ENV
echo "NEW_TAG=$NEW_TAG" >> $GITHUB_ENV echo "NEW_TAG=$NEW_TAG" >> $GITHUB_ENV
shell: bash shell: bash