diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3ee16bf..eda81a2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,19 +22,31 @@ jobs: if: ${{ github.event_name == 'push' }} shell: bash run: | - git fetch --tags --unshallow || true - LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.2.0") + git fetch --tags || true + # Determine last tag and log range + if git describe --tags --abbrev=0 >/dev/null 2>&1; then + LAST_TAG=$(git describe --tags --abbrev=0) + RANGE="${LAST_TAG}..HEAD" + else + LAST_TAG="v0.1.9" + RANGE="HEAD" + fi + + # Calculate next version IFS='.' read -r major minor patch <<< "${LAST_TAG#v}" NEW_VERSION="$major.$minor.$((patch + 1))" NEW_TAG="v$NEW_VERSION" - CHANGELOG=$(git log ${LAST_TAG}..HEAD --oneline | sed 's/^/* /') + # Log commits + CHANGELOG=$(git log $RANGE --oneline | sed 's/^/* /') [ -z "$CHANGELOG" ] && CHANGELOG="Maintenance build." + # Tag and push back to Gitea git tag $NEW_TAG git push origin $NEW_TAG + # Set outputs for next steps echo "version-string=$NEW_VERSION" >> $GITHUB_OUTPUT echo "changelog<> $GITHUB_OUTPUT echo "## What's Changed" >> $GITHUB_OUTPUT @@ -99,7 +111,6 @@ jobs: - name: Package Build run: | - # Use -not -path "*/CMakeFiles/*" to exclude the temporary "a.exe" files EXE=$(find build -name "*.exe" -not -path "*/CMakeFiles/*" | head -1) echo "Found EXE: $EXE" mkdir -p release