Skip to content

Commit 9832bc7

Browse files
committed
ci(releases): Always compare against the latest stable release
Do not release a development build of a stable release, it is redundant and confusing
1 parent be965a1 commit 9832bc7

1 file changed

Lines changed: 25 additions & 4 deletions

File tree

.github/workflows/windows_build.yml

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)