mirror of
https://github.com/setube/ogame-vue-ts.git
synced 2026-05-12 07:55:11 +08:00
chore(workflow): 优化 Release 工作流以提高稳定性
- 调整作业依赖顺序,确保构建完成后再执行发布 - 明确设置 GitHub 权限,增强对 PR 和内容的访问控制 - 重构版本号获取逻辑,使用更清晰的脚本方式 - 分步创建 Release 并上传资产,避免并发冲突 - 指定具体文件路径进行上传,防止误传 package.json - 启用自动生成 Release Notes 功能 - 统一管理下载路径并明确文件命名规则
This commit is contained in:
55
.github/workflows/build.yml
vendored
55
.github/workflows/build.yml
vendored
@@ -92,35 +92,56 @@ jobs:
|
|||||||
|
|
||||||
# 3. 发布 Release
|
# 3. 发布 Release
|
||||||
release:
|
release:
|
||||||
needs: [build-server, build-electron]
|
needs: [ build-server, build-electron ]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write # 必须确保有写权限
|
||||||
|
pull-requests: read
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Download Artifacts
|
# 1. 获取版本号
|
||||||
uses: actions/download-artifact@v4
|
- name: Get Version
|
||||||
with:
|
|
||||||
path: ./assets-to-release
|
|
||||||
merge-multiple: true # 将所有文件平铺在一个目录下
|
|
||||||
|
|
||||||
- name: Get Version for Tagging
|
|
||||||
id: get_version
|
id: get_version
|
||||||
run: echo "VERSION=v$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
|
shell: bash
|
||||||
|
run: |
|
||||||
|
VERSION=$(node -p "require('./package.json').version")
|
||||||
|
echo "VERSION=v$VERSION" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
# 2. 创建 Release (先创建,不上传文件)
|
||||||
|
# 这一步能有效避免 404,确保 Release 实体已存在
|
||||||
- name: Create GitHub Release
|
- name: Create GitHub Release
|
||||||
|
id: create_release
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
with:
|
with:
|
||||||
tag_name: ${{ steps.get_version.outputs.VERSION }}
|
tag_name: ${{ steps.get_version.outputs.VERSION }}
|
||||||
name: Release ${{ steps.get_version.outputs.VERSION }}
|
name: Release ${{ steps.get_version.outputs.VERSION }}
|
||||||
# 核心修复:显式指定要上传的文件后缀,彻底排除 package.json
|
draft: false
|
||||||
files: |
|
prerelease: false
|
||||||
./assets-to-release/*.exe
|
|
||||||
./assets-to-release/*.dmg
|
|
||||||
./assets-to-release/*.AppImage
|
|
||||||
./assets-to-release/*.zip
|
|
||||||
./assets-to-release/ogame-server-*
|
|
||||||
generate_release_notes: true
|
generate_release_notes: true
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
# 3. 下载产物并上传到已创建的 Release
|
||||||
|
- name: Download and Upload Assets
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
path: ./downloads
|
||||||
|
merge-multiple: true
|
||||||
|
|
||||||
|
- name: Upload Assets to Release
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
with:
|
||||||
|
tag_name: ${{ steps.get_version.outputs.VERSION }}
|
||||||
|
append_body: true
|
||||||
|
# 显式指定文件名,不带版本号
|
||||||
|
files: |
|
||||||
|
./downloads/ogame-server-win.exe
|
||||||
|
./downloads/ogame-server-linux
|
||||||
|
./downloads/ogame-server-linux-arm64
|
||||||
|
./downloads/ogame-Setup.exe
|
||||||
|
./downloads/*.dmg
|
||||||
|
./downloads/*.AppImage
|
||||||
|
./downloads/*.zip
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
Reference in New Issue
Block a user