From e34460661bb0b1eaa8b2672ab46381b47c725c94 Mon Sep 17 00:00:00 2001 From: fatbob01 Date: Thu, 21 May 2026 09:25:25 -0400 Subject: [PATCH 1/2] Add Windows build support to GitHub Actions - Switch build job runner from ubuntu-latest to windows-latest so the net8.0-windows TFM (needed for Radarr.Windows.dll) can be compiled - Uncomment win-x64/win-x86 PackageTests and Package calls in build.sh - Publish win-x64 test artifact and build_windows artifact from build job - Download Windows artifact in release job and zip it alongside Linux tarballs - Include windows-core-x64/x86 zips in GitHub release upload Linux tarballs and Docker image are unaffected; .NET 8 cross-compiles all Linux RIDs from the Windows runner identically to before. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/build.yml | 40 ++++++++++++++++++++++++++++--------- build.sh | 8 ++++---- 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c85a0e45047..9d2e9b4e54f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,7 +29,7 @@ env: jobs: build: - runs-on: ubuntu-latest + runs-on: windows-latest outputs: framework: ${{ steps.variables.outputs.framework }} version: ${{ steps.variables.outputs.version }} @@ -75,11 +75,23 @@ jobs: name: tests-linux-x64 path: _tests/${{ env.FRAMEWORK }}/linux-x64/publish/**/* + - name: Publish win-x64 Test Artifact + uses: actions/upload-artifact@v4 + with: + name: tests-win-x64 + path: _tests/${{ env.FRAMEWORK }}/win-x64/publish/**/* + - name: Publish Linux Artifact uses: actions/upload-artifact@v4 with: name: build_linux path: _artifacts/linux-*/**/* + + - name: Publish Windows Artifact + uses: actions/upload-artifact@v4 + with: + name: build_windows + path: _artifacts/win-*/**/* unit_test: needs: build @@ -372,33 +384,43 @@ jobs: permissions: contents: write steps: - - name: Download Build Artifact + - name: Download Linux Build Artifact uses: actions/download-artifact@v4 with: name: build_linux path: _output - - - name: Make Binaries Executable + + - name: Download Windows Build Artifact + uses: actions/download-artifact@v4 + with: + name: build_windows + path: _output + + - name: Make Linux Binaries Executable shell: bash run: | find . -name "ffprobe" -exec chmod a+x {} \; find . -name "Radarr" -exec chmod a+x {} \; find . -name "Radarr.Update" -exec chmod a+x {} \; - - name: Create Release Package + - name: Create Release Packages shell: bash run: | mkdir -p _artifacts tar -czf _artifacts/Radarr.${{ needs.build.outputs.branch }}.${{ needs.build.outputs.version }}.linux-musl-core-x64.tar.gz -C _output/linux-musl-x64/${{ env.FRAMEWORK }} Radarr tar -czf _artifacts/Radarr.${{ needs.build.outputs.branch }}.${{ needs.build.outputs.version }}.linux-musl-core-arm64.tar.gz -C _output/linux-musl-arm64/${{ env.FRAMEWORK }} Radarr + (cd _output/win-x64/${{ env.FRAMEWORK }} && zip -r ${{ github.workspace }}/_artifacts/Radarr.${{ needs.build.outputs.branch }}.${{ needs.build.outputs.version }}.windows-core-x64.zip Radarr) + (cd _output/win-x86/${{ env.FRAMEWORK }} && zip -r ${{ github.workspace }}/_artifacts/Radarr.${{ needs.build.outputs.branch }}.${{ needs.build.outputs.version }}.windows-core-x86.zip Radarr) - - name: Upload Release Artifact + - name: Upload Release Artifacts uses: actions/upload-artifact@v4 with: - name: release_linux + name: release_packages compression-level: 0 if-no-files-found: error - path: _artifacts/Radarr.*.linux-musl-core-*.tar.gz + path: | + _artifacts/Radarr.*.linux-musl-core-*.tar.gz + _artifacts/Radarr.*.windows-core-*.zip - name: Get Previous Release id: previous-release @@ -428,7 +450,7 @@ jobs: - name: Create Release uses: ncipollo/release-action@v1 with: - artifacts: _artifacts/Radarr.*.linux-musl-core-*.tar.gz + artifacts: "_artifacts/Radarr.*.linux-musl-core-*.tar.gz,_artifacts/Radarr.*.windows-core-*.zip" commit: ${{ github.sha }} generateReleaseNotes: false body: ${{ steps.generate-release-notes.outputs.result }} diff --git a/build.sh b/build.sh index 2ec87f97484..680585c0245 100755 --- a/build.sh +++ b/build.sh @@ -377,8 +377,8 @@ then Build if [[ -z "$RID" || -z "$FRAMEWORK" ]]; then -# PackageTests "net8.0" "win-x64" -# PackageTests "net8.0" "win-x86" + PackageTests "net8.0" "win-x64" + PackageTests "net8.0" "win-x86" PackageTests "net8.0" "linux-x64" PackageTests "net8.0" "linux-musl-x64" # PackageTests "net8.0" "osx-x64" @@ -412,8 +412,8 @@ then if [[ -z "$RID" || -z "$FRAMEWORK" ]]; then -# Package "net8.0" "win-x64" -# Package "net8.0" "win-x86" + Package "net8.0" "win-x64" + Package "net8.0" "win-x86" Package "net8.0" "linux-x64" Package "net8.0" "linux-musl-x64" Package "net8.0" "linux-arm64" From 8bd264d2e4cbcd5348da8b718cc0b516ee44c7a0 Mon Sep 17 00:00:00 2001 From: fatbob01 Date: Thu, 21 May 2026 09:37:11 -0400 Subject: [PATCH 2/2] Bump MailKit from 4.15.1 to 4.16.0 4.15.1 has a known moderate severity vulnerability (GHSA-9j88-vvj5-vhgr) which fails the build because TreatWarningsAsErrors=true promotes NU1902 to a hard error. Co-Authored-By: Claude Sonnet 4.6 --- src/NzbDrone.Core/Radarr.Core.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/Radarr.Core.csproj b/src/NzbDrone.Core/Radarr.Core.csproj index 3a93554bd2f..514a7522378 100644 --- a/src/NzbDrone.Core/Radarr.Core.csproj +++ b/src/NzbDrone.Core/Radarr.Core.csproj @@ -6,7 +6,7 @@ - +