|
|
@@ -6,8 +6,61 @@ on:
|
|
|
- 'v*'
|
|
|
|
|
|
jobs:
|
|
|
- # 第一步:更新版本号并提交
|
|
|
+ # 第一步:清理旧的发布和标签
|
|
|
+ cleanup:
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ steps:
|
|
|
+ - name: Delete all previous releases and tags
|
|
|
+ uses: actions/github-script@v7
|
|
|
+ with:
|
|
|
+ script: |
|
|
|
+ const { owner, repo } = context.repo;
|
|
|
+ const currentTag = context.ref.replace('refs/tags/', '');
|
|
|
+
|
|
|
+ // 获取所有 releases
|
|
|
+ const releases = await github.rest.repos.listReleases({
|
|
|
+ owner,
|
|
|
+ repo,
|
|
|
+ per_page: 100
|
|
|
+ });
|
|
|
+
|
|
|
+ // 删除所有旧的 releases(保留当前正在创建的)
|
|
|
+ for (const release of releases.data) {
|
|
|
+ if (release.tag_name !== currentTag) {
|
|
|
+ console.log(`Deleting release: ${release.tag_name}`);
|
|
|
+ await github.rest.repos.deleteRelease({
|
|
|
+ owner,
|
|
|
+ repo,
|
|
|
+ release_id: release.id
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取所有 tags
|
|
|
+ const tags = await github.rest.git.listMatchingRefs({
|
|
|
+ owner,
|
|
|
+ repo,
|
|
|
+ ref: 'tags/'
|
|
|
+ });
|
|
|
+
|
|
|
+ // 删除所有旧的 tags(保留当前的)
|
|
|
+ for (const tag of tags.data) {
|
|
|
+ const tagName = tag.ref.replace('refs/tags/', '');
|
|
|
+ if (tagName !== currentTag) {
|
|
|
+ console.log(`Deleting tag: ${tagName}`);
|
|
|
+ await github.rest.git.deleteRef({
|
|
|
+ owner,
|
|
|
+ repo,
|
|
|
+ ref: `tags/${tagName}`
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log('Cleanup completed');
|
|
|
+
|
|
|
+ # 第二步:更新版本号并提交
|
|
|
update-version:
|
|
|
+ needs: cleanup
|
|
|
runs-on: ubuntu-latest
|
|
|
outputs:
|
|
|
version: ${{ steps.version.outputs.VERSION }}
|
|
|
@@ -124,6 +177,13 @@ jobs:
|
|
|
# Create ZIP
|
|
|
Compress-Archive -Path "$portableDir/*" -DestinationPath "release/$portableDirName.zip" -Force
|
|
|
|
|
|
+ - name: Clean up unnecessary files
|
|
|
+ shell: bash
|
|
|
+ run: |
|
|
|
+ rm -f release/launcher.exe 2>/dev/null || true
|
|
|
+ rm -f release/*.blockmap 2>/dev/null || true
|
|
|
+ rm -f release/builder-debug.yml 2>/dev/null || true
|
|
|
+
|
|
|
- name: Upload release assets
|
|
|
uses: softprops/action-gh-release@v2
|
|
|
with:
|
|
|
@@ -134,8 +194,7 @@ jobs:
|
|
|
release/*.AppImage
|
|
|
release/*.deb
|
|
|
release/*.rpm
|
|
|
- release/*.yml
|
|
|
- release/*.yaml
|
|
|
+ release/latest*.yml
|
|
|
draft: false
|
|
|
prerelease: false
|
|
|
env:
|