@@ -259,7 +259,7 @@ jobs:
259259 }
260260
261261 $releaseList = $releases | ConvertFrom-Json
262- $latestStable = $releaseList | Where-Object { -not $_.isPrerelease -and $_.tagName } | Select-Object -First 1
262+ $latestStable = $releaseList | Where-Object { $_.tagName -like "v*" } | Select-Object -First 1
263263
264264 if ($latestStable -and $latestStable.tagName) {
265265 $compareFrom = $latestStable.tagName
@@ -271,7 +271,7 @@ jobs:
271271 Write-Host "No stable release found for comparison"
272272 }
273273 } elseif ($isStableRelease) {
274- # For stable releases, compare against previous release ( stable or pre- release)
274+ # For stable releases, compare against previous stable release
275275 Write-Host "Fetching previous releases..."
276276 Write-Host "Repository: ${{ github.repository }}"
277277
@@ -328,7 +328,7 @@ jobs:
328328
329329 $allReleases = $releases | ConvertFrom-Json
330330 $currentTag = "${{ github.ref }}" -replace "refs/tags/", ""
331- $previousRelease = $allReleases | Where-Object { $_.tagName -ne $currentTag -and $_.tagName } | Select-Object -First 1
331+ $previousRelease = $allReleases | Where-Object { $_.tagName -ne $currentTag -and $_.tagName -like "v*" } | Select-Object -First 1
332332
333333 if ($previousRelease -and $previousRelease.tagName) {
334334 $compareFrom = $previousRelease.tagName
@@ -533,9 +533,30 @@ jobs:
533533 env :
534534 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
535535
536+ - name : Check for stable tags on current commit
537+ id : check_tags
538+ shell : pwsh
539+ run : |
540+ try {
541+ $tags = gh api "repos/${{ github.repository }}/tags" --jq '[.[] | select(.name | startswith("v")) | select(.commit.sha == "${{ github.sha }}") | .name]'
542+ $tagList = $tags | ConvertFrom-Json
543+ if ($tagList -and $tagList.Count -gt 0) {
544+ Write-Host "Found stable tags: $($tagList -join ', ')"
545+ "has_stable_tag=true" >> "$GITHUB_OUTPUT"
546+ } else {
547+ Write-Host "No stable tags found on this commit"
548+ "has_stable_tag=false" >> "$GITHUB_OUTPUT"
549+ }
550+ } catch {
551+ Write-Host "Error checking tags: $($_.Exception.Message)"
552+ "has_stable_tag=false" >> "$GITHUB_OUTPUT"
553+ }
554+ env :
555+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
556+
536557 - name : Pre Release
537558 uses : softprops/action-gh-release@aec2ec56f94eb8180ceec724245f64ef008b89f5 # v2.4.0
538- if : github.ref == format('refs/heads/{0}', github.event.repository.default_branch)
559+ if : github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && steps.check_tags.outputs.has_stable_tag == 'false'
539560 with :
540561 tag_name : " latest"
541562 prerelease : true
0 commit comments