@@ -101,30 +101,46 @@ jobs:
101101 name : extension-zip
102102 path : dist/target/
103103
104- - name : Create nightly pre-release tag
104+ - name : Resolve latest stable release
105+ id : stable_release
106+ env :
107+ GH_TOKEN : ${{ github.token }}
105108 run : |
106109 set -euo pipefail
107- git tag "${{ needs.nightly-state.outputs.tag_name }}" "${{ needs.nightly-state.outputs.head_sha }}"
108- git push origin "refs/tags/${{ needs.nightly-state.outputs.tag_name }}"
110+
111+ STABLE_TAG="$(gh api "repos/${GITHUB_REPOSITORY}/releases/latest" --jq '.tag_name')"
112+ echo "tag=${STABLE_TAG}" >> "$GITHUB_OUTPUT"
113+ echo "Nightly release notes will start at ${STABLE_TAG}." >> "$GITHUB_STEP_SUMMARY"
109114
110115 - name : Create or update GitHub pre-release
111- uses : softprops/action-gh-release@v2
116+ uses : softprops/action-gh-release@v3
112117 with :
113118 tag_name : ${{ needs.nightly-state.outputs.tag_name }}
114119 target_commitish : ${{ needs.nightly-state.outputs.head_sha }}
115120 name : ${{ needs.nightly-state.outputs.release_name }}
116121 files : dist/target/aurora-shell@luminusos.github.io.shell-extension.zip
117122 generate_release_notes : true
123+ previous_tag : ${{ steps.stable_release.outputs.tag }}
118124 prerelease : true
119125 make_latest : false
120126 overwrite_files : true
121127
122- - name : Delete old pre-releases
123- uses : Nats-ji/delete-old-releases@v1
124- with :
125- token : ${{ github.token }}
126- keep-count : 3
127- keep-old-minor-releases : true
128- include-prerelease : true
129- semver-loose : true
130- remove-tags : true
128+ - name : Delete superseded nightly releases
129+ env :
130+ GH_TOKEN : ${{ github.token }}
131+ CURRENT_NIGHTLY : ${{ needs.nightly-state.outputs.tag_name }}
132+ run : |
133+ set -euo pipefail
134+
135+ gh release list \
136+ --limit 1000 \
137+ --json tagName,isPrerelease \
138+ --jq '.[] | select(.isPrerelease and (.tagName | test("-nightly[0-9]+$"))) | .tagName' |
139+ while IFS= read -r nightly_tag; do
140+ if [[ "$nightly_tag" == "$CURRENT_NIGHTLY" ]]; then
141+ continue
142+ fi
143+
144+ gh release delete "$nightly_tag" --cleanup-tag --yes
145+ echo "Deleted superseded nightly ${nightly_tag}." >> "$GITHUB_STEP_SUMMARY"
146+ done
0 commit comments