diff --git a/.github/workflows/dotnet-linux-x64.yml b/.github/workflows/dotnet-linux-x64.yml new file mode 100644 index 0000000..7b762b0 --- /dev/null +++ b/.github/workflows/dotnet-linux-x64.yml @@ -0,0 +1,63 @@ +name: Release Linux x64 .NET Application + +on: + release: + types: [published] + +permissions: + contents: write # 确保有写入发布的权限 + +jobs: + build_and_release: + name: 构建并发布 .NET 应用程序 + runs-on: ubuntu-latest + + steps: + - name: 检出仓库代码 + uses: actions/checkout@v3 # 使用最新稳定版本 + + - name: 设置 .NET 环境 + uses: actions/setup-dotnet@v3 # 使用最新稳定版本 + with: + dotnet-version: '8.0.x' # 确保使用的 .NET 版本与你的项目版本匹配 + + - name: 还原 NuGet 包 + run: dotnet restore src/MDriveSync.Client.API + + - name: 列出目录内容 (调试步骤) + run: | + echo "PublishProfiles 目录内容:" + dir src/MDriveSync.Client.API/Properties/PublishProfiles + + - name: 构建并发布 .NET 应用程序 + run: dotnet publish src/MDriveSync.Client.API -c Release /p:PublishProfile=Client.Publish.SelfContained.linux.x64.pubxml + + - name: 列出发布目录内容 (调试步骤) + run: | + echo "发布目录内容:" + dir src/MDriveSync.Client.API/bin/Release/net8.0/linux-x64/publish + + - name: 删除 PDB 和部分 XML 文件 + run: | + # 删除目录中的 .pdb 和部分 .xml 文件(如果存在) + Remove-Item src/MDriveSync.Client.API/bin/Release/net8.0/linux-x64/publish/*.pdb -Force -ErrorAction SilentlyContinue + + - name: 压缩构建产物 + run: | + # 将发布目录中的文件压缩为 zip 文件 + Compress-Archive -Path src/MDriveSync.Client.API/bin/Release/net8.0/linux-x64/publish/* -DestinationPath "MDrive-linux-x64-v${{ github.event.release.tag_name }}.zip" + + - name: 检查 ZIP 文件 + run: | + echo "生成的 ZIP 文件:" + dir MDrive-linux-x64-v${{ github.event.release.tag_name }}.zip + + - name: 上传 ZIP 文件到 release + uses: actions/upload-release-asset@v1 # 使用最新稳定版本 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: "MDrive-linux-x64-${{ github.event.release.tag_name }}.zip" + asset_name: "MDrive-linux-x64-${{ github.event.release.tag_name }}.zip" + asset_content_type: application/zip