From e2666e1d73d19888ff1e3ef411abb3fe282e7716 Mon Sep 17 00:00:00 2001 From: coolxitech Date: Sun, 14 Dec 2025 12:41:13 +0800 Subject: [PATCH] =?UTF-8?q?chore(workflow):=20=E4=BC=98=E5=8C=96=20Release?= =?UTF-8?q?=20=E5=B7=A5=E4=BD=9C=E6=B5=81=E4=BB=A5=E6=8F=90=E9=AB=98?= =?UTF-8?q?=E7=A8=B3=E5=AE=9A=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整作业依赖顺序,确保构建完成后再执行发布 - 明确设置 GitHub 权限,增强对 PR 和内容的访问控制 - 重构版本号获取逻辑,使用更清晰的脚本方式 - 分步创建 Release 并上传资产,避免并发冲突 - 指定具体文件路径进行上传,防止误传 package.json - 启用自动生成 Release Notes 功能 - 统一管理下载路径并明确文件命名规则 --- .github/workflows/build.yml | 55 +++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f92beb4..27a6f2f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -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 }} \ No newline at end of file