From 580204fcc35af27e046f2e0ce4cb145f5004a96c Mon Sep 17 00:00:00 2001 From: Aleksandr Misonizhnik Date: Thu, 19 Mar 2026 23:08:57 +0300 Subject: [PATCH] fix(ci): Prevent non-CLI releases from being marked as latest @semantic-release/github does not implement the makeLatest option - it was silently ignored across all versions. Use gh release edit --latest=false after release creation to explicitly unmark non-CLI releases. Remove the non-functional makeLatest config from .releaserc files and the unnecessary @semantic-release/github pin. --- .github/workflows/release-github.yaml | 10 +++++++++- .github/workflows/release-gitlab.yaml | 13 ++++++++++++- .github/workflows/release-rules.yaml | 13 ++++++++++++- github/.releaserc.cjs | 1 - gitlab/.releaserc.cjs | 1 - rules/.releaserc.cjs | 1 - 6 files changed, 33 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release-github.yaml b/.github/workflows/release-github.yaml index ce61f1165..da155d4a3 100644 --- a/.github/workflows/release-github.yaml +++ b/.github/workflows/release-github.yaml @@ -90,9 +90,17 @@ jobs: extra_plugins: | @semantic-release/commit-analyzer@11.1.0 @semantic-release/exec@6.0.3 - @semantic-release/github@10.3.5 conventional-changelog-conventionalcommits@7.0.2 + - name: Unmark release as latest + if: ${{ steps.manual_release.outputs.new-version != '' || steps.version.outputs.new_release_published == 'true' }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + RELEASE_VERSION="${{ steps.manual_release.outputs.new-version || steps.version.outputs.new_release_version }}" + RELEASE_TAG="github/v$(echo "$RELEASE_VERSION" | sed 's/^v//')" + gh release edit "$RELEASE_TAG" --latest=false + - name: Push floating major version tag if: ${{ steps.manual_release.outputs.new-version != '' || steps.version.outputs.new_release_published == 'true' }} env: diff --git a/.github/workflows/release-gitlab.yaml b/.github/workflows/release-gitlab.yaml index b406e0a82..137ff0062 100644 --- a/.github/workflows/release-gitlab.yaml +++ b/.github/workflows/release-gitlab.yaml @@ -91,7 +91,6 @@ jobs: extra_plugins: | @semantic-release/commit-analyzer@11.1.0 @semantic-release/exec@6.0.3 - @semantic-release/github@10.3.5 conventional-changelog-conventionalcommits@7.0.2 - name: Get release_version and pass to next job @@ -107,6 +106,18 @@ jobs: fi rm -f release_version.txt + - name: Unmark release as latest + if: ${{ steps.manual_release.outputs.new-version != '' || steps.release_version.outputs.status == 'succeeded' }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + RELEASE_VERSION="${{ steps.manual_release.outputs.new-version }}" + if [ -z "$RELEASE_VERSION" ]; then + RELEASE_VERSION="${{ steps.release_version.outputs.RELEASE_VERSION }}" + fi + RELEASE_TAG="gitlab/v$(echo "$RELEASE_VERSION" | sed 's/^v//')" + gh release edit "$RELEASE_TAG" --latest=false + - name: Update floating latest tag if: ${{ steps.manual_release.outputs.new-version != '' || steps.release_version.outputs.status == 'succeeded' }} env: diff --git a/.github/workflows/release-rules.yaml b/.github/workflows/release-rules.yaml index 319b9fb43..560d96b98 100644 --- a/.github/workflows/release-rules.yaml +++ b/.github/workflows/release-rules.yaml @@ -96,7 +96,6 @@ jobs: extra_plugins: | @semantic-release/commit-analyzer@11.1.0 @semantic-release/exec@6.0.3 - @semantic-release/github@10.3.5 conventional-changelog-conventionalcommits@7.0.2 - name: Get release_version and pass to next job @@ -112,6 +111,18 @@ jobs: fi rm -f release_version.txt + - name: Unmark release as latest + if: ${{ steps.manual_release.outputs.new-version != '' || steps.release_version.outputs.status == 'succeeded' }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + RELEASE_VERSION="${{ steps.manual_release.outputs.new-version }}" + if [ -z "$RELEASE_VERSION" ]; then + RELEASE_VERSION="${{ steps.release_version.outputs.RELEASE_VERSION }}" + fi + RELEASE_TAG="rules/v$(echo "$RELEASE_VERSION" | sed 's/^v//')" + gh release edit "$RELEASE_TAG" --latest=false + - name: Update floating latest tag if: ${{ steps.manual_release.outputs.new-version != '' || steps.release_version.outputs.status == 'succeeded' }} env: diff --git a/github/.releaserc.cjs b/github/.releaserc.cjs index 80b008499..d4bcf83b0 100644 --- a/github/.releaserc.cjs +++ b/github/.releaserc.cjs @@ -44,7 +44,6 @@ module.exports = { failTitle: false, labels: false, releasedLabels: false, - makeLatest: false, assets: [], }, ], diff --git a/gitlab/.releaserc.cjs b/gitlab/.releaserc.cjs index fedefc509..f51d39e17 100644 --- a/gitlab/.releaserc.cjs +++ b/gitlab/.releaserc.cjs @@ -44,7 +44,6 @@ module.exports = { failTitle: false, labels: false, releasedLabels: false, - makeLatest: false, assets: [], }, ], diff --git a/rules/.releaserc.cjs b/rules/.releaserc.cjs index 9e0b08b67..0ce48e31b 100644 --- a/rules/.releaserc.cjs +++ b/rules/.releaserc.cjs @@ -44,7 +44,6 @@ module.exports = { failTitle: false, labels: false, releasedLabels: false, - makeLatest: false, assets: [ { path: '../opentaint-rules.tar.gz',