name: release Windows on: workflow_dispatch: inputs: release_tag: required: false type: string push: branches: - master env: OutputArch: "windows-64" OutputArchArm: "windows-arm64" OutputPath64: "${{ github.workspace }}/v2rayN/Release/windows-64" OutputPathArm64: "${{ github.workspace }}/v2rayN/Release/windows-arm64" OutputPath64Sc: "${{ github.workspace }}/v2rayN/Release/windows-64-SelfContained" jobs: build: strategy: matrix: configuration: [Release] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4.2.2 - name: Setup uses: actions/setup-dotnet@v4.3.0 with: dotnet-version: '8.0.x' - name: Build run: | cd v2rayN dotnet publish ./v2rayN/v2rayN.csproj -c Release -r win-x64 --self-contained=false -p:EnableWindowsTargeting=true -o $OutputPath64 dotnet publish ./v2rayN/v2rayN.csproj -c Release -r win-arm64 --self-contained=false -p:EnableWindowsTargeting=true -o $OutputPathArm64 dotnet publish ./v2rayN/v2rayN.csproj -c Release -r win-x64 --self-contained=true -p:EnableWindowsTargeting=true -o $OutputPath64Sc dotnet publish ./AmazTool/AmazTool.csproj -c Release -r win-x64 --self-contained=false -p:EnableWindowsTargeting=true -o $OutputPath64 dotnet publish ./AmazTool/AmazTool.csproj -c Release -r win-arm64 --self-contained=false -p:EnableWindowsTargeting=true -o $OutputPathArm64 dotnet publish ./AmazTool/AmazTool.csproj -c Release -r win-x64 --self-contained=true -p:EnableWindowsTargeting=true -p:PublishTrimmed=true -o $OutputPath64Sc - name: Upload build artifacts uses: actions/upload-artifact@v4.6.1 with: name: v2rayN-windows path: | ${{ github.workspace }}/v2rayN/Release/windows* # release zip archive - name: Package release zip archive if: github.event.inputs.release_tag != '' run: | chmod 755 package-release-zip.sh ./package-release-zip.sh $OutputArch $OutputPath64 ./package-release-zip.sh $OutputArchArm $OutputPathArm64 ./package-release-zip.sh "windows-64-SelfContained" $OutputPath64Sc - name: Upload zip archive to release uses: svenstaro/upload-release-action@v2 if: github.event.inputs.release_tag != '' with: file: ${{ github.workspace }}/v2rayN*.zip tag: ${{ github.event.inputs.release_tag }} file_glob: true prerelease: true