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
|
||||
release:
|
||||
needs: [build-server, build-electron]
|
||||
needs: [ build-server, build-electron ]
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
contents: write # 必须确保有写权限
|
||||
pull-requests: read
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: ./assets-to-release
|
||||
merge-multiple: true # 将所有文件平铺在一个目录下
|
||||
|
||||
- name: Get Version for Tagging
|
||||
# 1. 获取版本号
|
||||
- name: 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
|
||||
id: create_release
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
tag_name: ${{ steps.get_version.outputs.VERSION }}
|
||||
name: Release ${{ steps.get_version.outputs.VERSION }}
|
||||
# 核心修复:显式指定要上传的文件后缀,彻底排除 package.json
|
||||
files: |
|
||||
./assets-to-release/*.exe
|
||||
./assets-to-release/*.dmg
|
||||
./assets-to-release/*.AppImage
|
||||
./assets-to-release/*.zip
|
||||
./assets-to-release/ogame-server-*
|
||||
draft: false
|
||||
prerelease: false
|
||||
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:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
Reference in New Issue
Block a user