From 7bdbe09832af7a90e421e8323a73b89dcf9a3624 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Mon, 27 Oct 2025 14:20:15 +0100 Subject: [PATCH 01/50] Rename CI pipeline for clarity --- .github/workflows/{ci.yml => coverage.yml} | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) rename .github/workflows/{ci.yml => coverage.yml} (95%) diff --git a/.github/workflows/ci.yml b/.github/workflows/coverage.yml similarity index 95% rename from .github/workflows/ci.yml rename to .github/workflows/coverage.yml index 0c8999357..224256896 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/coverage.yml @@ -1,9 +1,8 @@ -name: CI +name: Build, Test & Coverage on: push: pull_request: - types: [opened] jobs: build: @@ -28,7 +27,7 @@ jobs: sudo apt-get install -y libmsquic - name: Download .NET SDK - uses: actions/setup-dotnet@v4.1.0 + uses: actions/setup-dotnet@v4 with: dotnet-version: 9.0 From 66960a204d99b3caacd77d8454e5d69b55e33475 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Mon, 27 Oct 2025 14:23:39 +0100 Subject: [PATCH 02/50] Add GitHub Actions workflow for platform support verification --- .github/workflows/platforms.yml | 88 +++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 .github/workflows/platforms.yml diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml new file mode 100644 index 000000000..6a90936d7 --- /dev/null +++ b/.github/workflows/platforms.yml @@ -0,0 +1,88 @@ +name: Verify Platform Support + +on: + push: + pull_request: + +jobs: + linux: + name: Linux – ${{ matrix.arch }} (.NET ${{ matrix.dotnet-version }}) + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + dotnet-version: [8.0.x, 9.0.x] + include: + - arch: x64 + runtime: linux-x64 + platform: linux/amd64 + qemu: false + - arch: arm32 + runtime: linux-arm + platform: linux/arm/v7 + qemu: true + - arch: arm64 + runtime: linux-arm64 + platform: linux/arm64/v8 + qemu: true + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup .NET SDK ${{ matrix.dotnet-version }} + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ matrix.dotnet-version }} + + - name: Setup QEMU + if: ${{ matrix.qemu }} + uses: docker/setup-qemu-action@v3 + + - name: Setup Docker Buildx + if: ${{ matrix.qemu }} + uses: docker/setup-buildx-action@v3 + + - name: Build & Test (${{ matrix.runtime }}) + shell: bash + run: | + echo "=== Building and Testing for ${{ matrix.runtime }} (.NET ${{ matrix.dotnet-version }}) ===" + + if [[ "${{ matrix.qemu }}" == "true" ]]; then + docker run --rm \ + --platform ${{ matrix.platform }} \ + -v $PWD:/src -w /src \ + mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet-version%.* }} \ + bash -c "dotnet restore && dotnet build -c Release --runtime ${{ matrix.runtime }} && dotnet test -c Release --runtime ${{ matrix.runtime }} --no-build" + else + dotnet restore + dotnet build -c Release --runtime ${{ matrix.runtime }} + dotnet test -c Release --runtime ${{ matrix.runtime }} --no-build + fi + + windows: + name: Windows – x64 (.NET ${{ matrix.dotnet-version }}) + runs-on: windows-latest + + strategy: + fail-fast: false + matrix: + dotnet-version: [8.0.x, 9.0.x] + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup .NET SDK ${{ matrix.dotnet-version }} + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ matrix.dotnet-version }} + + - name: Build & Test (win-x64) + shell: pwsh + run: | + Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix.dotnet-version }}) ===" + dotnet restore + dotnet build -c Release --runtime win-x64 + dotnet test -c Release --runtime win-x64 --no-build From a6887f7a5fe0b37029d16785c8f54c026fa3af77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Mon, 27 Oct 2025 14:40:39 +0100 Subject: [PATCH 03/50] Nop --- .github/workflows/platforms.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 6a90936d7..90d6b5928 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -86,3 +86,4 @@ jobs: dotnet restore dotnet build -c Release --runtime win-x64 dotnet test -c Release --runtime win-x64 --no-build + From 809961f9879828891cc789af02c0955f16e84811 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 14:43:15 +0100 Subject: [PATCH 04/50] Change triggers for less builds? --- .github/workflows/coverage.yml | 4 ++-- .github/workflows/platforms.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 224256896..0e696eebf 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -1,8 +1,8 @@ name: Build, Test & Coverage -on: - push: +on: pull_request: + branches: [ main ] jobs: build: diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 90d6b5928..66efa9a79 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -1,8 +1,8 @@ name: Verify Platform Support on: - push: pull_request: + branches: [ main ] jobs: linux: From 669b249d8b847a278fdd1e1bda8b72955b8170ff Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 14:45:31 +0100 Subject: [PATCH 05/50] Try to trigger --- .github/workflows/platforms.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 66efa9a79..77e8c2913 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -1,6 +1,8 @@ name: Verify Platform Support on: + push: + branches: [ feature/multi-platform ] pull_request: branches: [ main ] From dc4fd0c852919781e3e71ed025809ccb94008a95 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 14:48:23 +0100 Subject: [PATCH 06/50] Next try --- .github/workflows/platforms.yml | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 77e8c2913..505eab0f4 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -8,7 +8,7 @@ on: jobs: linux: - name: Linux – ${{ matrix.arch }} (.NET ${{ matrix.dotnet-version }}) + name: Linux – ${{ matrix.arch }} (.NET ${{ matrix["dotnet-version"] }}) runs-on: ubuntu-latest strategy: @@ -30,13 +30,13 @@ jobs: qemu: true steps: - - name: Checkout + - name: Checkout source uses: actions/checkout@v4 - - name: Setup .NET SDK ${{ matrix.dotnet-version }} + - name: Setup .NET SDK ${{ matrix["dotnet-version"] }} uses: actions/setup-dotnet@v4 with: - dotnet-version: ${{ matrix.dotnet-version }} + dotnet-version: ${{ matrix["dotnet-version"] }} - name: Setup QEMU if: ${{ matrix.qemu }} @@ -46,16 +46,16 @@ jobs: if: ${{ matrix.qemu }} uses: docker/setup-buildx-action@v3 - - name: Build & Test (${{ matrix.runtime }}) + - name: Build and Test (${{ matrix.runtime }}) shell: bash run: | - echo "=== Building and Testing for ${{ matrix.runtime }} (.NET ${{ matrix.dotnet-version }}) ===" + echo "=== Building and Testing for ${{ matrix.runtime }} (.NET ${{ matrix["dotnet-version"] }}) ===" if [[ "${{ matrix.qemu }}" == "true" ]]; then docker run --rm \ --platform ${{ matrix.platform }} \ -v $PWD:/src -w /src \ - mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet-version%.* }} \ + mcr.microsoft.com/dotnet/sdk:${{ matrix["dotnet-version"]%.* }} \ bash -c "dotnet restore && dotnet build -c Release --runtime ${{ matrix.runtime }} && dotnet test -c Release --runtime ${{ matrix.runtime }} --no-build" else dotnet restore @@ -64,7 +64,7 @@ jobs: fi windows: - name: Windows – x64 (.NET ${{ matrix.dotnet-version }}) + name: Windows – x64 (.NET ${{ matrix["dotnet-version"] }}) runs-on: windows-latest strategy: @@ -73,19 +73,18 @@ jobs: dotnet-version: [8.0.x, 9.0.x] steps: - - name: Checkout + - name: Checkout source uses: actions/checkout@v4 - - name: Setup .NET SDK ${{ matrix.dotnet-version }} + - name: Setup .NET SDK ${{ matrix["dotnet-version"] }} uses: actions/setup-dotnet@v4 with: - dotnet-version: ${{ matrix.dotnet-version }} + dotnet-version: ${{ matrix["dotnet-version"] }} - - name: Build & Test (win-x64) + - name: Build and Test (win-x64) shell: pwsh run: | - Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix.dotnet-version }}) ===" + Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix["dotnet-version"] }}) ===" dotnet restore dotnet build -c Release --runtime win-x64 - dotnet test -c Release --runtime win-x64 --no-build - + dotnet test -c Release --runtime win-x64 --no-build \ No newline at end of file From 8d76a2d6a7c6295d4c61d69f8ef9391666f7c949 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 14:49:54 +0100 Subject: [PATCH 07/50] I am just a slave of ChatGPT --- .github/workflows/platforms.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 505eab0f4..cd36b180f 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -8,13 +8,13 @@ on: jobs: linux: - name: Linux – ${{ matrix.arch }} (.NET ${{ matrix["dotnet-version"] }}) + name: Linux – ${{ matrix.arch }} (.NET ${{ matrix.dotnet }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: - dotnet-version: [8.0.x, 9.0.x] + dotnet: [8.0.x, 9.0.x] include: - arch: x64 runtime: linux-x64 @@ -33,10 +33,10 @@ jobs: - name: Checkout source uses: actions/checkout@v4 - - name: Setup .NET SDK ${{ matrix["dotnet-version"] }} + - name: Setup .NET SDK ${{ matrix.dotnet }} uses: actions/setup-dotnet@v4 with: - dotnet-version: ${{ matrix["dotnet-version"] }} + dotnet-version: ${{ matrix.dotnet }} - name: Setup QEMU if: ${{ matrix.qemu }} @@ -49,13 +49,13 @@ jobs: - name: Build and Test (${{ matrix.runtime }}) shell: bash run: | - echo "=== Building and Testing for ${{ matrix.runtime }} (.NET ${{ matrix["dotnet-version"] }}) ===" + echo "=== Building and Testing for ${{ matrix.runtime }} (.NET ${{ matrix.dotnet }}) ===" if [[ "${{ matrix.qemu }}" == "true" ]]; then docker run --rm \ --platform ${{ matrix.platform }} \ -v $PWD:/src -w /src \ - mcr.microsoft.com/dotnet/sdk:${{ matrix["dotnet-version"]%.* }} \ + mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet%.* }} \ bash -c "dotnet restore && dotnet build -c Release --runtime ${{ matrix.runtime }} && dotnet test -c Release --runtime ${{ matrix.runtime }} --no-build" else dotnet restore @@ -64,27 +64,27 @@ jobs: fi windows: - name: Windows – x64 (.NET ${{ matrix["dotnet-version"] }}) + name: Windows – x64 (.NET ${{ matrix.dotnet }}) runs-on: windows-latest strategy: fail-fast: false matrix: - dotnet-version: [8.0.x, 9.0.x] + dotnet: [8.0.x, 9.0.x] steps: - name: Checkout source uses: actions/checkout@v4 - - name: Setup .NET SDK ${{ matrix["dotnet-version"] }} + - name: Setup .NET SDK ${{ matrix.dotnet }} uses: actions/setup-dotnet@v4 with: - dotnet-version: ${{ matrix["dotnet-version"] }} + dotnet-version: ${{ matrix.dotnet }} - name: Build and Test (win-x64) shell: pwsh run: | - Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix["dotnet-version"] }}) ===" + Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix.dotnet }}) ===" dotnet restore dotnet build -c Release --runtime win-x64 dotnet test -c Release --runtime win-x64 --no-build \ No newline at end of file From 2105a59e3a085b7d38e3b440dadb85dd3243e885 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 14:51:03 +0100 Subject: [PATCH 08/50] Final version .. --- .github/workflows/platforms.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index cd36b180f..5223bc3ef 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -52,10 +52,13 @@ jobs: echo "=== Building and Testing for ${{ matrix.runtime }} (.NET ${{ matrix.dotnet }}) ===" if [[ "${{ matrix.qemu }}" == "true" ]]; then + version="${{ matrix.dotnet }}" + base_version="${version%.*}" + docker run --rm \ --platform ${{ matrix.platform }} \ -v $PWD:/src -w /src \ - mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet%.* }} \ + mcr.microsoft.com/dotnet/sdk:$base_version \ bash -c "dotnet restore && dotnet build -c Release --runtime ${{ matrix.runtime }} && dotnet test -c Release --runtime ${{ matrix.runtime }} --no-build" else dotnet restore From 4e47fa3ae99889ccbd0dba9c2da53663976684b9 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 14:55:39 +0100 Subject: [PATCH 09/50] Specify the solution --- .github/workflows/platforms.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 5223bc3ef..dcc9b98aa 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - dotnet: [8.0.x, 9.0.x] + dotnet: [8.0, 9.0] include: - arch: x64 runtime: linux-x64 @@ -59,11 +59,11 @@ jobs: --platform ${{ matrix.platform }} \ -v $PWD:/src -w /src \ mcr.microsoft.com/dotnet/sdk:$base_version \ - bash -c "dotnet restore && dotnet build -c Release --runtime ${{ matrix.runtime }} && dotnet test -c Release --runtime ${{ matrix.runtime }} --no-build" + bash -c "dotnet restore GenHTTP.slnx && dotnet build GenHTTP.slnx -c Release --runtime ${{ matrix.runtime }} && dotnet test GenHTTP.slnx -c Release --runtime ${{ matrix.runtime }} --no-build" else - dotnet restore - dotnet build -c Release --runtime ${{ matrix.runtime }} - dotnet test -c Release --runtime ${{ matrix.runtime }} --no-build + dotnet restore GenHTTP.slnx + dotnet build GenHTTP.slnx -c Release --runtime ${{ matrix.runtime }} + dotnet test GenHTTP.slnx -c Release --runtime ${{ matrix.runtime }} --no-build fi windows: @@ -73,7 +73,7 @@ jobs: strategy: fail-fast: false matrix: - dotnet: [8.0.x, 9.0.x] + dotnet: [8.0, 9.0] steps: - name: Checkout source @@ -88,6 +88,6 @@ jobs: shell: pwsh run: | Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix.dotnet }}) ===" - dotnet restore - dotnet build -c Release --runtime win-x64 - dotnet test -c Release --runtime win-x64 --no-build \ No newline at end of file + dotnet restore GenHTTP.slnx + dotnet build GenHTTP.slnx -c Release --runtime win-x64 + dotnet test GenHTTP.slnx -c Release --runtime win-x64 --no-build \ No newline at end of file From 506e6c8ee52caccae171577de04829ab3a1ab5b2 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 14:56:47 +0100 Subject: [PATCH 10/50] Remove feature branch trigger? --- .github/workflows/platforms.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index dcc9b98aa..0b176e755 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -1,8 +1,6 @@ name: Verify Platform Support on: - push: - branches: [ feature/multi-platform ] pull_request: branches: [ main ] From 0a2f42cad4aeadaffbd94951f9bd662f94f1a2b6 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 15:01:52 +0100 Subject: [PATCH 11/50] Simplify build without runtime identifies --- .github/workflows/platforms.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 0b176e755..fd8caf9b9 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -51,17 +51,15 @@ jobs: if [[ "${{ matrix.qemu }}" == "true" ]]; then version="${{ matrix.dotnet }}" - base_version="${version%.*}" + base_version="${version%.*}.0" docker run --rm \ --platform ${{ matrix.platform }} \ -v $PWD:/src -w /src \ mcr.microsoft.com/dotnet/sdk:$base_version \ - bash -c "dotnet restore GenHTTP.slnx && dotnet build GenHTTP.slnx -c Release --runtime ${{ matrix.runtime }} && dotnet test GenHTTP.slnx -c Release --runtime ${{ matrix.runtime }} --no-build" + bash -c "dotnet test GenHTTP.slnx -c Release" else - dotnet restore GenHTTP.slnx - dotnet build GenHTTP.slnx -c Release --runtime ${{ matrix.runtime }} - dotnet test GenHTTP.slnx -c Release --runtime ${{ matrix.runtime }} --no-build + dotnet test GenHTTP.slnx -c Release fi windows: @@ -86,6 +84,4 @@ jobs: shell: pwsh run: | Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix.dotnet }}) ===" - dotnet restore GenHTTP.slnx - dotnet build GenHTTP.slnx -c Release --runtime win-x64 - dotnet test GenHTTP.slnx -c Release --runtime win-x64 --no-build \ No newline at end of file + dotnet test GenHTTP.slnx -c Release \ No newline at end of file From 4ac75cb7be0ba0845b09bd923afd08fe4fb02b15 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 15:12:22 +0100 Subject: [PATCH 12/50] Further improvements --- .github/workflows/platforms.yml | 34 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index fd8caf9b9..d291f9c80 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -5,24 +5,25 @@ on: branches: [ main ] jobs: + linux: - name: Linux – ${{ matrix.arch }} (.NET ${{ matrix.dotnet }}) + name: Linux – ${{ matrix.arch.name }} (.NET ${{ matrix.dotnet }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: dotnet: [8.0, 9.0] - include: - - arch: x64 + arch: + - name: x64 runtime: linux-x64 platform: linux/amd64 qemu: false - - arch: arm32 + - name: arm32 runtime: linux-arm platform: linux/arm/v7 qemu: true - - arch: arm64 + - name: arm64 runtime: linux-arm64 platform: linux/arm64/v8 qemu: true @@ -37,29 +38,26 @@ jobs: dotnet-version: ${{ matrix.dotnet }} - name: Setup QEMU - if: ${{ matrix.qemu }} + if: ${{ matrix.arch.qemu }} uses: docker/setup-qemu-action@v3 - name: Setup Docker Buildx - if: ${{ matrix.qemu }} + if: ${{ matrix.arch.qemu }} uses: docker/setup-buildx-action@v3 - - name: Build and Test (${{ matrix.runtime }}) + - name: Build and Test (${{ matrix.arch.runtime }}) shell: bash run: | - echo "=== Building and Testing for ${{ matrix.runtime }} (.NET ${{ matrix.dotnet }}) ===" - - if [[ "${{ matrix.qemu }}" == "true" ]]; then - version="${{ matrix.dotnet }}" - base_version="${version%.*}.0" + echo "=== Building and Testing for ${{ matrix.arch.runtime }} (.NET ${{ matrix.dotnet }}) ===" + if [[ "${{ matrix.arch.qemu }}" == "true" ]]; then docker run --rm \ - --platform ${{ matrix.platform }} \ + --platform ${{ matrix.arch.platform }} \ -v $PWD:/src -w /src \ - mcr.microsoft.com/dotnet/sdk:$base_version \ - bash -c "dotnet test GenHTTP.slnx -c Release" + mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet }} \ + bash -c "dotnet test Testing/Testing/GenHTTP.Testing.csproj -c Release -f net${{ matrix.dotnet }}" else - dotnet test GenHTTP.slnx -c Release + dotnet test Testing/Testing/GenHTTP.Testing.csproj -c Release -f net${{ matrix.dotnet }} fi windows: @@ -84,4 +82,4 @@ jobs: shell: pwsh run: | Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix.dotnet }}) ===" - dotnet test GenHTTP.slnx -c Release \ No newline at end of file + dotnet test Testing/Testing/GenHTTP.Testing.csproj -c Release -f net${{ matrix.dotnet }} \ No newline at end of file From e0d07c56bddb0e3b8a8cc35ea9f4ae0d64172eea Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 15:15:58 +0100 Subject: [PATCH 13/50] Wrong project (: --- .github/workflows/platforms.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index d291f9c80..bbf7769fc 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -55,9 +55,9 @@ jobs: --platform ${{ matrix.arch.platform }} \ -v $PWD:/src -w /src \ mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet }} \ - bash -c "dotnet test Testing/Testing/GenHTTP.Testing.csproj -c Release -f net${{ matrix.dotnet }}" + bash -c "dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}" else - dotnet test Testing/Testing/GenHTTP.Testing.csproj -c Release -f net${{ matrix.dotnet }} + dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }} fi windows: @@ -82,4 +82,4 @@ jobs: shell: pwsh run: | Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix.dotnet }}) ===" - dotnet test Testing/Testing/GenHTTP.Testing.csproj -c Release -f net${{ matrix.dotnet }} \ No newline at end of file + dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }} \ No newline at end of file From 169a07c0c8a1ee9467beee230aae0a84fe1c07db Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 15:21:51 +0100 Subject: [PATCH 14/50] Yet another try --- .github/workflows/platforms.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index bbf7769fc..8199673e6 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -54,10 +54,10 @@ jobs: docker run --rm \ --platform ${{ matrix.arch.platform }} \ -v $PWD:/src -w /src \ - mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet }} \ - bash -c "dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}" + mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet }}.0 \ + bash -c "dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0" else - dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }} + dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 fi windows: @@ -82,4 +82,4 @@ jobs: shell: pwsh run: | Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix.dotnet }}) ===" - dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }} \ No newline at end of file + dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 \ No newline at end of file From b0cff9adcf312b91ef6a678f61e7d3571b43fce0 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 15:57:38 +0100 Subject: [PATCH 15/50] Remove some build errors? --- .github/workflows/platforms.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 8199673e6..042ac5435 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -55,9 +55,9 @@ jobs: --platform ${{ matrix.arch.platform }} \ -v $PWD:/src -w /src \ mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet }}.0 \ - bash -c "dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0" + bash -c "dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -p:TargetFramework=net${{ matrix.dotnet }}.0" else - dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 + dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -p:TargetFramework=net${{ matrix.dotnet }}.0 fi windows: @@ -82,4 +82,4 @@ jobs: shell: pwsh run: | Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix.dotnet }}) ===" - dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 \ No newline at end of file + dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -p:TargetFramework=net${{ matrix.dotnet }}.0 \ No newline at end of file From 3addd62ba19de18fba643c84bc70bc9aea8b1000 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 16:01:59 +0100 Subject: [PATCH 16/50] Shorten the check names --- .github/workflows/platforms.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 042ac5435..af5425f4a 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -1,4 +1,4 @@ -name: Verify Platform Support +name: Verify on: pull_request: @@ -7,7 +7,7 @@ on: jobs: linux: - name: Linux – ${{ matrix.arch.name }} (.NET ${{ matrix.dotnet }}) + name: Linux - ${{ matrix.arch.name }} - .NET ${{ matrix.dotnet }} runs-on: ubuntu-latest strategy: @@ -61,7 +61,7 @@ jobs: fi windows: - name: Windows – x64 (.NET ${{ matrix.dotnet }}) + name: Windows – x64 - .NET ${{ matrix.dotnet }} runs-on: windows-latest strategy: From 96e78c95a6f3a77a9e7739df672962b968589067 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 16:03:19 +0100 Subject: [PATCH 17/50] Align pipeline naming --- .github/workflows/coverage.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 0e696eebf..f5a1ba505 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -1,4 +1,4 @@ -name: Build, Test & Coverage +name: CI on: pull_request: @@ -7,6 +7,8 @@ on: jobs: build: + name: Build, Test & Coverage + runs-on: ubuntu-latest env: From dea560da3fee82ed50bc7764f727f2ef63d8fa77 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 16:05:26 +0100 Subject: [PATCH 18/50] Revert target framework because this did not work --- .github/workflows/platforms.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index af5425f4a..382ad98a3 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -55,9 +55,9 @@ jobs: --platform ${{ matrix.arch.platform }} \ -v $PWD:/src -w /src \ mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet }}.0 \ - bash -c "dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -p:TargetFramework=net${{ matrix.dotnet }}.0" + bash -c "dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0" else - dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -p:TargetFramework=net${{ matrix.dotnet }}.0 + dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 fi windows: @@ -82,4 +82,4 @@ jobs: shell: pwsh run: | Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix.dotnet }}) ===" - dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -p:TargetFramework=net${{ matrix.dotnet }}.0 \ No newline at end of file + dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 \ No newline at end of file From 49e36e32d82567beed9a670599fffdada08b7730 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 16:22:11 +0100 Subject: [PATCH 19/50] Use ARM64 natively --- .github/workflows/platforms.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 382ad98a3..99bc2d78f 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -8,7 +8,6 @@ jobs: linux: name: Linux - ${{ matrix.arch.name }} - .NET ${{ matrix.dotnet }} - runs-on: ubuntu-latest strategy: fail-fast: false @@ -26,7 +25,10 @@ jobs: - name: arm64 runtime: linux-arm64 platform: linux/arm64/v8 - qemu: true + qemu: false # ← changed to false to use native ARM64 runner + + # Conditional runs-on depending on architecture + runs-on: ${{ matrix.arch.name == 'arm64' && 'ubuntu-22.04-arm64' || 'ubuntu-latest' }} steps: - name: Checkout source @@ -58,7 +60,6 @@ jobs: bash -c "dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0" else dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 - fi windows: name: Windows – x64 - .NET ${{ matrix.dotnet }} From ea1ee734c0c3511e29baad28fe2870d6d5bd63d7 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 16:24:47 +0100 Subject: [PATCH 20/50] sigh --- .github/workflows/platforms.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 99bc2d78f..9f64612e3 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -8,6 +8,7 @@ jobs: linux: name: Linux - ${{ matrix.arch.name }} - .NET ${{ matrix.dotnet }} + runs-on: ${{ matrix.arch.runs-on }} strategy: fail-fast: false @@ -18,17 +19,17 @@ jobs: runtime: linux-x64 platform: linux/amd64 qemu: false + runs-on: ubuntu-latest - name: arm32 runtime: linux-arm platform: linux/arm/v7 qemu: true + runs-on: ubuntu-latest - name: arm64 runtime: linux-arm64 platform: linux/arm64/v8 - qemu: false # ← changed to false to use native ARM64 runner - - # Conditional runs-on depending on architecture - runs-on: ${{ matrix.arch.name == 'arm64' && 'ubuntu-22.04-arm64' || 'ubuntu-latest' }} + qemu: false + runs-on: ubuntu-22.04-arm64 steps: - name: Checkout source From 48debbcead40e8aa53b260c678562b93691ef1f4 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 16:27:03 +0100 Subject: [PATCH 21/50] Ah, now I see the issue --- .github/workflows/platforms.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 9f64612e3..22fa9fef0 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -54,11 +54,10 @@ jobs: echo "=== Building and Testing for ${{ matrix.arch.runtime }} (.NET ${{ matrix.dotnet }}) ===" if [[ "${{ matrix.arch.qemu }}" == "true" ]]; then - docker run --rm \ - --platform ${{ matrix.arch.platform }} \ - -v $PWD:/src -w /src \ + docker run --rm --platform ${{ matrix.arch.platform }} \ + -v "$PWD:/src" -w /src \ mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet }}.0 \ - bash -c "dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0" + bash -c 'dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0' else dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 From 5338504522972e8c93762f7acd9078e146940819 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 16:29:50 +0100 Subject: [PATCH 22/50] Fully fixed version --- .github/workflows/platforms.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 22fa9fef0..aa86cfca2 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -53,13 +53,16 @@ jobs: run: | echo "=== Building and Testing for ${{ matrix.arch.runtime }} (.NET ${{ matrix.dotnet }}) ===" - if [[ "${{ matrix.arch.qemu }}" == "true" ]]; then + IS_QEMU="${{ matrix.arch.qemu }}" + + if [ "$IS_QEMU" = "true" ]; then docker run --rm --platform ${{ matrix.arch.platform }} \ -v "$PWD:/src" -w /src \ mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet }}.0 \ bash -c 'dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0' else dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 + fi windows: name: Windows – x64 - .NET ${{ matrix.dotnet }} @@ -83,4 +86,4 @@ jobs: shell: pwsh run: | Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix.dotnet }}) ===" - dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 \ No newline at end of file + dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 From 37bb2a09f59e3391fee72a0025563fddeaff9ab7 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 16:40:40 +0100 Subject: [PATCH 23/50] Use internal engine only --- .github/workflows/platforms.yml | 5 ++++- Testing/Acceptance/MultiEngineTest.cs | 22 ++++++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index aa86cfca2..391b7bf1c 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -9,6 +9,8 @@ jobs: linux: name: Linux - ${{ matrix.arch.name }} - .NET ${{ matrix.dotnet }} runs-on: ${{ matrix.arch.runs-on }} + env: + TEST_ENGINE: Internal strategy: fail-fast: false @@ -62,11 +64,12 @@ jobs: bash -c 'dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0' else dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 - fi windows: name: Windows – x64 - .NET ${{ matrix.dotnet }} runs-on: windows-latest + env: + TEST_ENGINE: Internal strategy: fail-fast: false diff --git a/Testing/Acceptance/MultiEngineTest.cs b/Testing/Acceptance/MultiEngineTest.cs index 8d0568496..fe0e12336 100644 --- a/Testing/Acceptance/MultiEngineTest.cs +++ b/Testing/Acceptance/MultiEngineTest.cs @@ -13,11 +13,25 @@ public class MultiEngineTestAttribute : Attribute, ITestDataSource public IEnumerable GetData(MethodInfo methodInfo) { - return new List + var engine = Environment.GetEnvironmentVariable("TEST_ENGINE"); + + if (engine == null) { + return new List + { + new object[] { TestEngine.Internal }, + new object[] { TestEngine.Kestrel } + }; + } + + if (Enum.TryParse(engine, out TestEngine found)) { - new object[] { TestEngine.Internal }, - new object[] { TestEngine.Kestrel } - }; + return new List + { + new object[] { found } + }; + } + + throw new InvalidOperationException($"Engine '{engine}' is not supported"); } public string GetDisplayName(MethodInfo methodInfo, object?[]? data) From d8f8ff322528dfbba15c472fb403b72951dab9e8 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 16:43:03 +0100 Subject: [PATCH 24/50] ... --- .github/workflows/platforms.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 391b7bf1c..ea422400b 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -58,12 +58,14 @@ jobs: IS_QEMU="${{ matrix.arch.qemu }}" if [ "$IS_QEMU" = "true" ]; then - docker run --rm --platform ${{ matrix.arch.platform }} \ - -v "$PWD:/src" -w /src \ + DOCKER_CMD="docker run --rm --platform ${{ matrix.arch.platform }} \ + -v \"$PWD:/src\" -w /src \ mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet }}.0 \ - bash -c 'dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0' + bash -c \"dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0\"" + eval $DOCKER_CMD else dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 + fi windows: name: Windows – x64 - .NET ${{ matrix.dotnet }} From 890da72c087a2bc89763ded06a7778550986790d Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 16:49:50 +0100 Subject: [PATCH 25/50] Disable Kestrel on verify --- Testing/Acceptance/Engine/Kestrel/CustomizingTests.cs | 4 +++- Testing/Acceptance/Engine/Kestrel/KestrelBaseTest.cs | 8 ++++++++ Testing/Acceptance/Engine/Kestrel/LifecycleTests.cs | 4 +++- Testing/Acceptance/Engine/Kestrel/MappingTests.cs | 8 +++++++- Testing/Acceptance/Engine/Kestrel/ProtocolTests.cs | 4 +++- 5 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 Testing/Acceptance/Engine/Kestrel/KestrelBaseTest.cs diff --git a/Testing/Acceptance/Engine/Kestrel/CustomizingTests.cs b/Testing/Acceptance/Engine/Kestrel/CustomizingTests.cs index a272a6d7e..0c82aa199 100644 --- a/Testing/Acceptance/Engine/Kestrel/CustomizingTests.cs +++ b/Testing/Acceptance/Engine/Kestrel/CustomizingTests.cs @@ -5,12 +5,14 @@ namespace GenHTTP.Testing.Acceptance.Engine.Kestrel; [TestClass] -public class CustomizingTests +public class CustomizingTests : KestrelBaseTest { [TestMethod] public async Task TestHooks() { + if (!CheckKestrel()) return; + var configHook = (WebApplicationBuilder b) => { }; var appHook = (WebApplication a) => { }; diff --git a/Testing/Acceptance/Engine/Kestrel/KestrelBaseTest.cs b/Testing/Acceptance/Engine/Kestrel/KestrelBaseTest.cs new file mode 100644 index 000000000..a48e2e565 --- /dev/null +++ b/Testing/Acceptance/Engine/Kestrel/KestrelBaseTest.cs @@ -0,0 +1,8 @@ +namespace GenHTTP.Testing.Acceptance.Engine.Kestrel; + +public class KestrelBaseTest +{ + + protected bool CheckKestrel() => Environment.GetEnvironmentVariable("TEST_ENGINE") == null; + +} diff --git a/Testing/Acceptance/Engine/Kestrel/LifecycleTests.cs b/Testing/Acceptance/Engine/Kestrel/LifecycleTests.cs index 169442c7e..fe2b081d4 100644 --- a/Testing/Acceptance/Engine/Kestrel/LifecycleTests.cs +++ b/Testing/Acceptance/Engine/Kestrel/LifecycleTests.cs @@ -4,12 +4,14 @@ namespace GenHTTP.Testing.Acceptance.Engine.Kestrel; [TestClass] -public class LifecycleTests +public class LifecycleTests : KestrelBaseTest { [TestMethod] public async Task TestLifecycle() { + if (!CheckKestrel()) return; + var handler = Content.From(Resource.FromString("Hello Kestrel!")).Build(); await using var host = new TestHost(handler, engine: TestEngine.Kestrel); diff --git a/Testing/Acceptance/Engine/Kestrel/MappingTests.cs b/Testing/Acceptance/Engine/Kestrel/MappingTests.cs index 284dc5d5a..fff7e7a47 100644 --- a/Testing/Acceptance/Engine/Kestrel/MappingTests.cs +++ b/Testing/Acceptance/Engine/Kestrel/MappingTests.cs @@ -5,12 +5,14 @@ namespace GenHTTP.Testing.Acceptance.Engine.Kestrel; [TestClass] -public class MappingTests +public class MappingTests : KestrelBaseTest { [TestMethod] public async Task TestHeaders() { + if (!CheckKestrel()) return; + var app = Inline.Create().Get((IRequest request) => { var count = request.Headers.Count; @@ -37,6 +39,8 @@ public async Task TestHeaders() [TestMethod] public async Task TestQuery() { + if (!CheckKestrel()) return; + var app = Inline.Create().Get((IRequest request) => { var count = request.Query.Count; @@ -63,6 +67,8 @@ public async Task TestQuery() [TestMethod] public async Task TestConnection() { + if (!CheckKestrel()) return; + var app = Inline.Create().Get((IRequest request) => { Assert.IsNotNull(request.Client.Host); diff --git a/Testing/Acceptance/Engine/Kestrel/ProtocolTests.cs b/Testing/Acceptance/Engine/Kestrel/ProtocolTests.cs index a72e3f376..9bf8b950b 100644 --- a/Testing/Acceptance/Engine/Kestrel/ProtocolTests.cs +++ b/Testing/Acceptance/Engine/Kestrel/ProtocolTests.cs @@ -8,12 +8,14 @@ namespace GenHTTP.Testing.Acceptance.Engine.Kestrel; [TestClass] -public class ProtocolTests +public class ProtocolTests : KestrelBaseTest { [TestMethod] public async Task TestHttp2And3() { + if (!CheckKestrel()) return; + var logic = Inline.Create().Get((IRequest request) => request.ProtocolType); var client = GetClient(); From 9e4547d64a8f6ca50fa7e612545e3479fa035fee Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 17:02:58 +0100 Subject: [PATCH 26/50] Disable arm32 for now --- .github/workflows/platforms.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index ea422400b..b272344fe 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -22,11 +22,11 @@ jobs: platform: linux/amd64 qemu: false runs-on: ubuntu-latest - - name: arm32 - runtime: linux-arm - platform: linux/arm/v7 - qemu: true - runs-on: ubuntu-latest + #- name: arm32 + # runtime: linux-arm + # platform: linux/arm/v7 + # qemu: true + # runs-on: ubuntu-latest - name: arm64 runtime: linux-arm64 platform: linux/arm64/v8 From 332be322f7d8d4623de40ec5f75e205dfbcc35a4 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Mon, 27 Oct 2025 17:08:15 +0100 Subject: [PATCH 27/50] ... --- .github/workflows/platforms.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index b272344fe..3cad3630d 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -31,7 +31,7 @@ jobs: runtime: linux-arm64 platform: linux/arm64/v8 qemu: false - runs-on: ubuntu-22.04-arm64 + runs-on: ubuntu-22.04-arm steps: - name: Checkout source From ec807a47955befeedd8b9843a5d04daf67036fa7 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Tue, 28 Oct 2025 05:51:10 +0100 Subject: [PATCH 28/50] Remove ARM32 and fix ARM64 build on .NET 8 --- .github/workflows/platforms.yml | 39 +++++++-------------------------- 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 3cad3630d..220681e50 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -20,17 +20,10 @@ jobs: - name: x64 runtime: linux-x64 platform: linux/amd64 - qemu: false runs-on: ubuntu-latest - #- name: arm32 - # runtime: linux-arm - # platform: linux/arm/v7 - # qemu: true - # runs-on: ubuntu-latest - name: arm64 runtime: linux-arm64 platform: linux/arm64/v8 - qemu: false runs-on: ubuntu-22.04-arm steps: @@ -42,30 +35,16 @@ jobs: with: dotnet-version: ${{ matrix.dotnet }} - - name: Setup QEMU - if: ${{ matrix.arch.qemu }} - uses: docker/setup-qemu-action@v3 - - - name: Setup Docker Buildx - if: ${{ matrix.arch.qemu }} - uses: docker/setup-buildx-action@v3 + # ARM64 on .NET 8 does not support multiple target frameworks + - name: Setup .NET SDK 9.0 + if: matrix.arch.name == 'arm64' && matrix.dotnet == '8.0' + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0 - name: Build and Test (${{ matrix.arch.runtime }}) shell: bash - run: | - echo "=== Building and Testing for ${{ matrix.arch.runtime }} (.NET ${{ matrix.dotnet }}) ===" - - IS_QEMU="${{ matrix.arch.qemu }}" - - if [ "$IS_QEMU" = "true" ]; then - DOCKER_CMD="docker run --rm --platform ${{ matrix.arch.platform }} \ - -v \"$PWD:/src\" -w /src \ - mcr.microsoft.com/dotnet/sdk:${{ matrix.dotnet }}.0 \ - bash -c \"dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0\"" - eval $DOCKER_CMD - else - dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 - fi + run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 windows: name: Windows – x64 - .NET ${{ matrix.dotnet }} @@ -89,6 +68,4 @@ jobs: - name: Build and Test (win-x64) shell: pwsh - run: | - Write-Host "=== Building and Testing for win-x64 (.NET ${{ matrix.dotnet }}) ===" - dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 + run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 From 8ae0c668e2b75b201cd8da78f2fbbb9dc2e22f87 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Tue, 28 Oct 2025 05:56:01 +0100 Subject: [PATCH 29/50] Rename elements for more clarity --- .github/workflows/{coverage.yml => build.yml} | 4 ++-- .github/workflows/platforms.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) rename .github/workflows/{coverage.yml => build.yml} (97%) diff --git a/.github/workflows/coverage.yml b/.github/workflows/build.yml similarity index 97% rename from .github/workflows/coverage.yml rename to .github/workflows/build.yml index f5a1ba505..eecadaef4 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: CI +name: Build on: pull_request: @@ -7,7 +7,7 @@ on: jobs: build: - name: Build, Test & Coverage + name: Test & Coverage runs-on: ubuntu-latest diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 220681e50..447cc4f87 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -1,4 +1,4 @@ -name: Verify +name: Platform on: pull_request: @@ -30,13 +30,13 @@ jobs: - name: Checkout source uses: actions/checkout@v4 - - name: Setup .NET SDK ${{ matrix.dotnet }} + - name: Setup .NET ${{ matrix.dotnet }} uses: actions/setup-dotnet@v4 with: dotnet-version: ${{ matrix.dotnet }} # ARM64 on .NET 8 does not support multiple target frameworks - - name: Setup .NET SDK 9.0 + - name: Setup .NET 9 if: matrix.arch.name == 'arm64' && matrix.dotnet == '8.0' uses: actions/setup-dotnet@v4 with: From 27259e30233dcc6e40fa20f29579ab22b5d97e7a Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Tue, 28 Oct 2025 06:04:49 +0100 Subject: [PATCH 30/50] Try with emojis --- .github/workflows/build.yml | 2 +- .github/workflows/platforms.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index eecadaef4..1c51dc375 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Build +name: ✔️ on: pull_request: diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 447cc4f87..2afd9af20 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -1,4 +1,4 @@ -name: Platform +name: ⚙️ on: pull_request: @@ -7,7 +7,7 @@ on: jobs: linux: - name: Linux - ${{ matrix.arch.name }} - .NET ${{ matrix.dotnet }} + name: 🐧 ${{ matrix.arch.name }} - .NET ${{ matrix.dotnet }} runs-on: ${{ matrix.arch.runs-on }} env: TEST_ENGINE: Internal @@ -47,7 +47,7 @@ jobs: run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 windows: - name: Windows – x64 - .NET ${{ matrix.dotnet }} + name: 🪟 x64 - .NET ${{ matrix.dotnet }} runs-on: windows-latest env: TEST_ENGINE: Internal From fc601aa859dd4346f70f8d432f3b145cf890e791 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Tue, 28 Oct 2025 06:07:15 +0100 Subject: [PATCH 31/50] Even better --- .github/workflows/build.yml | 2 +- .github/workflows/platforms.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1c51dc375..e18408f0d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: ✔️ +name: 🔎 on: pull_request: diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 2afd9af20..e8973a26e 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -1,4 +1,4 @@ -name: ⚙️ +name: 🖥️ on: pull_request: @@ -7,7 +7,7 @@ on: jobs: linux: - name: 🐧 ${{ matrix.arch.name }} - .NET ${{ matrix.dotnet }} + name: 🐧 - ${{ matrix.arch.name }} - .NET ${{ matrix.dotnet }} runs-on: ${{ matrix.arch.runs-on }} env: TEST_ENGINE: Internal @@ -47,7 +47,7 @@ jobs: run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 windows: - name: 🪟 x64 - .NET ${{ matrix.dotnet }} + name: 🪟 - x64 - .NET ${{ matrix.dotnet }} runs-on: windows-latest env: TEST_ENGINE: Internal From 1d29a0f996ecfbf4f9017f9193142167df843db8 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Tue, 28 Oct 2025 06:08:19 +0100 Subject: [PATCH 32/50] Even betterer --- .github/workflows/platforms.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index e8973a26e..29054e481 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -7,7 +7,7 @@ on: jobs: linux: - name: 🐧 - ${{ matrix.arch.name }} - .NET ${{ matrix.dotnet }} + name: 🐧 - .NET ${{ matrix.dotnet }} - ${{ matrix.arch.name }} runs-on: ${{ matrix.arch.runs-on }} env: TEST_ENGINE: Internal @@ -47,7 +47,7 @@ jobs: run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 windows: - name: 🪟 - x64 - .NET ${{ matrix.dotnet }} + name: 🪟 - .NET ${{ matrix.dotnet }} - x64 runs-on: windows-latest env: TEST_ENGINE: Internal From 9ae5a66f4ae842a73826ad56f618937dd8f4cf85 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Tue, 28 Oct 2025 06:10:04 +0100 Subject: [PATCH 33/50] The bettest --- .github/workflows/platforms.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 29054e481..8f63cedcd 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -7,7 +7,7 @@ on: jobs: linux: - name: 🐧 - .NET ${{ matrix.dotnet }} - ${{ matrix.arch.name }} + name: 🐧 / .NET ${{ matrix.dotnet }} / ${{ matrix.arch.name }} runs-on: ${{ matrix.arch.runs-on }} env: TEST_ENGINE: Internal @@ -47,7 +47,7 @@ jobs: run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 windows: - name: 🪟 - .NET ${{ matrix.dotnet }} - x64 + name: 🪟 / .NET ${{ matrix.dotnet }} / x64 runs-on: windows-latest env: TEST_ENGINE: Internal From 94ae4728171083cf138b1f35b1353e9311b7174f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 09:24:02 +0100 Subject: [PATCH 34/50] Consolidate into a single job --- .github/workflows/platforms.yml | 93 +++++++++++++++++++-------------- 1 file changed, 53 insertions(+), 40 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 8f63cedcd..56610ef6e 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -5,67 +5,80 @@ on: branches: [ main ] jobs: - - linux: - name: 🐧 / .NET ${{ matrix.dotnet }} / ${{ matrix.arch.name }} - runs-on: ${{ matrix.arch.runs-on }} + build-test: + name: ${{ matrix.os.name }} / .NET ${{ matrix.dotnet }} / ${{ matrix.arch }} + runs-on: ${{ matrix.os.runs-on }} env: TEST_ENGINE: Internal strategy: fail-fast: false matrix: - dotnet: [8.0, 9.0] - arch: - - name: x64 + include: + # Linux x64 + - os: + name: 🐧 + runs-on: ubuntu-latest + arch: x64 + runtime: linux-x64 + platform: linux/amd64 + dotnet: 8.0 + - os: + name: 🐧 + runs-on: ubuntu-latest + arch: x64 runtime: linux-x64 platform: linux/amd64 - runs-on: ubuntu-latest - - name: arm64 + dotnet: 9.0 + + # Linux arm64 + - os: + name: 🐧 + runs-on: ubuntu-22.04-arm + arch: arm64 runtime: linux-arm64 platform: linux/arm64/v8 - runs-on: ubuntu-22.04-arm + dotnet: 8.0 + - os: + name: 🐧 + runs-on: ubuntu-22.04-arm + arch: arm64 + runtime: linux-arm64 + platform: linux/arm64/v8 + dotnet: 9.0 + + # Windows x64 + - os: + name: 🪟 + runs-on: windows-latest + arch: x64 + runtime: win-x64 + platform: windows/amd64 + dotnet: 8.0 + - os: + name: 🪟 + runs-on: windows-latest + arch: x64 + runtime: win-x64 + platform: windows/amd64 + dotnet: 9.0 steps: - name: Checkout source uses: actions/checkout@v4 - - name: Setup .NET ${{ matrix.dotnet }} + - name: Setup .NET SDK ${{ matrix.dotnet }} uses: actions/setup-dotnet@v4 with: dotnet-version: ${{ matrix.dotnet }} - # ARM64 on .NET 8 does not support multiple target frameworks - - name: Setup .NET 9 - if: matrix.arch.name == 'arm64' && matrix.dotnet == '8.0' + # Workaround: ARM64 on .NET 8 doesn’t support multiple TFMs + - name: Setup .NET 9 (for ARM64 on .NET 8) + if: matrix.runtime == 'linux-arm64' && matrix.arch == 'arm64' && matrix.dotnet == '8.0' uses: actions/setup-dotnet@v4 with: dotnet-version: 9.0 - - name: Build and Test (${{ matrix.arch.runtime }}) - shell: bash - run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 - - windows: - name: 🪟 / .NET ${{ matrix.dotnet }} / x64 - runs-on: windows-latest - env: - TEST_ENGINE: Internal - - strategy: - fail-fast: false - matrix: - dotnet: [8.0, 9.0] - - steps: - - name: Checkout source - uses: actions/checkout@v4 - - - name: Setup .NET SDK ${{ matrix.dotnet }} - uses: actions/setup-dotnet@v4 - with: - dotnet-version: ${{ matrix.dotnet }} - - - name: Build and Test (win-x64) - shell: pwsh + - name: Build & Test (${{ matrix.runtime }}) + shell: ${{ startsWith(matrix.os.runs-on, 'windows') && 'pwsh' || 'bash' }} run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 From 9c6191d8f7696fe700026dac22457b6897e3519d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 09:27:37 +0100 Subject: [PATCH 35/50] Now working? --- .github/workflows/platforms.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 56610ef6e..47ecc73dd 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -5,9 +5,13 @@ on: branches: [ main ] jobs: + build-test: + name: ${{ matrix.os.name }} / .NET ${{ matrix.dotnet }} / ${{ matrix.arch }} + runs-on: ${{ matrix.os.runs-on }} + env: TEST_ENGINE: Internal @@ -15,6 +19,7 @@ jobs: fail-fast: false matrix: include: + # Linux x64 - os: name: 🐧 @@ -72,7 +77,6 @@ jobs: with: dotnet-version: ${{ matrix.dotnet }} - # Workaround: ARM64 on .NET 8 doesn’t support multiple TFMs - name: Setup .NET 9 (for ARM64 on .NET 8) if: matrix.runtime == 'linux-arm64' && matrix.arch == 'arm64' && matrix.dotnet == '8.0' uses: actions/setup-dotnet@v4 @@ -80,5 +84,4 @@ jobs: dotnet-version: 9.0 - name: Build & Test (${{ matrix.runtime }}) - shell: ${{ startsWith(matrix.os.runs-on, 'windows') && 'pwsh' || 'bash' }} run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 From 5224e9d6dec1222bb7f2ef5152d9ce38d22ac697 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 09:32:41 +0100 Subject: [PATCH 36/50] Add more platforms --- .github/workflows/platforms.yml | 48 +++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 47ecc73dd..fa473e7d0 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -68,6 +68,54 @@ jobs: platform: windows/amd64 dotnet: 9.0 + # Windows arm64 + - os: + name: 🪟 + runs-on: windows-latest + arch: arm64 + runtime: win-arm64 + platform: windows/arm64 + dotnet: 8.0 + - os: + name: 🪟 + runs-on: windows-latest + arch: arm64 + runtime: win-arm64 + platform: windows/arm64 + dotnet: 9.0 + + # macOS x64 + - os: + name: 🍎 + runs-on: macos-12 + arch: x64 + runtime: osx-x64 + platform: macos/amd64 + dotnet: 8.0 + - os: + name: 🍎 + runs-on: macos-12 + arch: x64 + runtime: osx-x64 + platform: macos/amd64 + dotnet: 9.0 + + # macOS arm64 + - os: + name: 🍎 + runs-on: macos-14 + arch: arm64 + runtime: osx-arm64 + platform: macos/arm64 + dotnet: 8.0 + - os: + name: 🍎 + runs-on: macos-14 + arch: arm64 + runtime: osx-arm64 + platform: macos/arm64 + dotnet: 9.0 + steps: - name: Checkout source uses: actions/checkout@v4 From 4502e6cfabbd99be470dfb87e1c20b9917a57892 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 09:41:24 +0100 Subject: [PATCH 37/50] Try correct images --- .github/workflows/platforms.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index fa473e7d0..3879a0775 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -87,14 +87,14 @@ jobs: # macOS x64 - os: name: 🍎 - runs-on: macos-12 + runs-on: macos-15-intel arch: x64 runtime: osx-x64 platform: macos/amd64 dotnet: 8.0 - os: name: 🍎 - runs-on: macos-12 + runs-on: macos-15-intel arch: x64 runtime: osx-x64 platform: macos/amd64 @@ -103,14 +103,14 @@ jobs: # macOS arm64 - os: name: 🍎 - runs-on: macos-14 + runs-on: macos-15 arch: arm64 runtime: osx-arm64 platform: macos/arm64 dotnet: 8.0 - os: name: 🍎 - runs-on: macos-14 + runs-on: macos-15 arch: arm64 runtime: osx-arm64 platform: macos/arm64 From c6c495298a2f68f6d1af0552f6aa688ede2bbe6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 09:50:35 +0100 Subject: [PATCH 38/50] Try to run platform tests after CI build --- .github/workflows/platforms.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 3879a0775..758fd0491 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -1,13 +1,17 @@ name: 🖥️ on: - pull_request: - branches: [ main ] + workflow_run: + workflows: ["🔎"] + types: + - completed jobs: build-test: + if: ${{ github.event.workflow_run.conclusion == 'success' }} + name: ${{ matrix.os.name }} / .NET ${{ matrix.dotnet }} / ${{ matrix.arch }} runs-on: ${{ matrix.os.runs-on }} From 499f04d53fccf112b712a07ba025bdcf38309823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 09:57:50 +0100 Subject: [PATCH 39/50] All in one? --- .github/workflows/build.yml | 131 ++++++++++++++++++++++++++++++ .github/workflows/platforms.yml | 139 -------------------------------- 2 files changed, 131 insertions(+), 139 deletions(-) delete mode 100644 .github/workflows/platforms.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e18408f0d..1d65c80fe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,6 +5,7 @@ on: branches: [ main ] jobs: + build: name: Test & Coverage @@ -49,3 +50,133 @@ jobs: - name: End scan if: env.SONAR_TOKEN != null && env.SONAR_TOKEN != '' run: dotnet sonarscanner end /d:sonar.token="$SONAR_TOKEN" + + verify: + + name: ${{ matrix.os.name }} / .NET ${{ matrix.dotnet }} / ${{ matrix.arch }} + + needs: build + + runs-on: ${{ matrix.os.runs-on }} + + env: + TEST_ENGINE: Internal + + strategy: + fail-fast: false + matrix: + include: + + # Linux x64 + - os: + name: 🐧 + runs-on: ubuntu-latest + arch: x64 + runtime: linux-x64 + platform: linux/amd64 + dotnet: 8.0 + - os: + name: 🐧 + runs-on: ubuntu-latest + arch: x64 + runtime: linux-x64 + platform: linux/amd64 + dotnet: 9.0 + + # Linux arm64 + - os: + name: 🐧 + runs-on: ubuntu-22.04-arm + arch: arm64 + runtime: linux-arm64 + platform: linux/arm64/v8 + dotnet: 8.0 + - os: + name: 🐧 + runs-on: ubuntu-22.04-arm + arch: arm64 + runtime: linux-arm64 + platform: linux/arm64/v8 + dotnet: 9.0 + + # Windows x64 + - os: + name: 🪟 + runs-on: windows-latest + arch: x64 + runtime: win-x64 + platform: windows/amd64 + dotnet: 8.0 + - os: + name: 🪟 + runs-on: windows-latest + arch: x64 + runtime: win-x64 + platform: windows/amd64 + dotnet: 9.0 + + # Windows arm64 + - os: + name: 🪟 + runs-on: windows-latest + arch: arm64 + runtime: win-arm64 + platform: windows/arm64 + dotnet: 8.0 + - os: + name: 🪟 + runs-on: windows-latest + arch: arm64 + runtime: win-arm64 + platform: windows/arm64 + dotnet: 9.0 + + # macOS x64 + - os: + name: 🍎 + runs-on: macos-15-intel + arch: x64 + runtime: osx-x64 + platform: macos/amd64 + dotnet: 8.0 + - os: + name: 🍎 + runs-on: macos-15-intel + arch: x64 + runtime: osx-x64 + platform: macos/amd64 + dotnet: 9.0 + + # macOS arm64 + - os: + name: 🍎 + runs-on: macos-15 + arch: arm64 + runtime: osx-arm64 + platform: macos/arm64 + dotnet: 8.0 + - os: + name: 🍎 + runs-on: macos-15 + arch: arm64 + runtime: osx-arm64 + platform: macos/arm64 + dotnet: 9.0 + + steps: + - name: Checkout source + uses: actions/checkout@v4 + + - name: Setup .NET SDK ${{ matrix.dotnet }} + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ matrix.dotnet }} + + - name: Setup .NET 9 (for ARM64 on .NET 8) + if: matrix.runtime == 'linux-arm64' && matrix.arch == 'arm64' && matrix.dotnet == '8.0' + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0 + + - name: Build & Test (${{ matrix.runtime }}) + run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml deleted file mode 100644 index 758fd0491..000000000 --- a/.github/workflows/platforms.yml +++ /dev/null @@ -1,139 +0,0 @@ -name: 🖥️ - -on: - workflow_run: - workflows: ["🔎"] - types: - - completed - -jobs: - - build-test: - - if: ${{ github.event.workflow_run.conclusion == 'success' }} - - name: ${{ matrix.os.name }} / .NET ${{ matrix.dotnet }} / ${{ matrix.arch }} - - runs-on: ${{ matrix.os.runs-on }} - - env: - TEST_ENGINE: Internal - - strategy: - fail-fast: false - matrix: - include: - - # Linux x64 - - os: - name: 🐧 - runs-on: ubuntu-latest - arch: x64 - runtime: linux-x64 - platform: linux/amd64 - dotnet: 8.0 - - os: - name: 🐧 - runs-on: ubuntu-latest - arch: x64 - runtime: linux-x64 - platform: linux/amd64 - dotnet: 9.0 - - # Linux arm64 - - os: - name: 🐧 - runs-on: ubuntu-22.04-arm - arch: arm64 - runtime: linux-arm64 - platform: linux/arm64/v8 - dotnet: 8.0 - - os: - name: 🐧 - runs-on: ubuntu-22.04-arm - arch: arm64 - runtime: linux-arm64 - platform: linux/arm64/v8 - dotnet: 9.0 - - # Windows x64 - - os: - name: 🪟 - runs-on: windows-latest - arch: x64 - runtime: win-x64 - platform: windows/amd64 - dotnet: 8.0 - - os: - name: 🪟 - runs-on: windows-latest - arch: x64 - runtime: win-x64 - platform: windows/amd64 - dotnet: 9.0 - - # Windows arm64 - - os: - name: 🪟 - runs-on: windows-latest - arch: arm64 - runtime: win-arm64 - platform: windows/arm64 - dotnet: 8.0 - - os: - name: 🪟 - runs-on: windows-latest - arch: arm64 - runtime: win-arm64 - platform: windows/arm64 - dotnet: 9.0 - - # macOS x64 - - os: - name: 🍎 - runs-on: macos-15-intel - arch: x64 - runtime: osx-x64 - platform: macos/amd64 - dotnet: 8.0 - - os: - name: 🍎 - runs-on: macos-15-intel - arch: x64 - runtime: osx-x64 - platform: macos/amd64 - dotnet: 9.0 - - # macOS arm64 - - os: - name: 🍎 - runs-on: macos-15 - arch: arm64 - runtime: osx-arm64 - platform: macos/arm64 - dotnet: 8.0 - - os: - name: 🍎 - runs-on: macos-15 - arch: arm64 - runtime: osx-arm64 - platform: macos/arm64 - dotnet: 9.0 - - steps: - - name: Checkout source - uses: actions/checkout@v4 - - - name: Setup .NET SDK ${{ matrix.dotnet }} - uses: actions/setup-dotnet@v4 - with: - dotnet-version: ${{ matrix.dotnet }} - - - name: Setup .NET 9 (for ARM64 on .NET 8) - if: matrix.runtime == 'linux-arm64' && matrix.arch == 'arm64' && matrix.dotnet == '8.0' - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 9.0 - - - name: Build & Test (${{ matrix.runtime }}) - run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 From b1c40921490135e896f2f4b98909607b09749832 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 10:16:07 +0100 Subject: [PATCH 40/50] Clarify readme regarding platform support --- README.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 862ac07ad..d6a961a85 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ GenHTTP is a lightweight web server written in pure C# with a strong focus on de purpose of this project is to quickly create web services written in .NET 8 / 9, allowing developers to concentrate on the functionality rather than on messing around with configuration files or complex concepts. -[![CI](https://github.com/Kaliumhexacyanoferrat/GenHTTP/actions/workflows/ci.yml/badge.svg)](https://github.com/Kaliumhexacyanoferrat/GenHTTP/actions/workflows/ci.yml) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=GenHTTP&metric=coverage)](https://sonarcloud.io/dashboard?id=GenHTTP) [![nuget Package](https://img.shields.io/nuget/v/GenHTTP.Core.svg)](https://www.nuget.org/packages/GenHTTP.Core/) [](https://discord.gg/cW6tPJS7nt) [![Discord](https://discordapp.com/api/guilds/1177529388229734410/widget.png?style=shield)](https://discord.gg/GwtDyUpkpV) +[![CI](https://github.com/Kaliumhexacyanoferrat/GenHTTP/actions/workflows/ci.yml/badge.svg)](https://github.com/Kaliumhexacyanoferrat/GenHTTP/actions/workflows/ci.yml) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=GenHTTP&metric=coverage)](https://sonarcloud.io/dashboard?id=GenHTTP) [![nuget Package](https://img.shields.io/nuget/v/GenHTTP.Core.svg)](https://www.nuget.org/packages/GenHTTP.Core/) [![View - Documentation](https://img.shields.io/badge/view-Documentation-AB54FF)](https://genhttp.org/documentation/) [![Discord](https://discordapp.com/api/guilds/1177529388229734410/widget.png?style=shield)](https://discord.gg/GwtDyUpkpV) ## 🚀 Features @@ -16,6 +16,18 @@ the functionality rather than on messing around with configuration files or comp - [Optimized](https://genhttp.org/features/) out of the box, small memory and storage [footprint](https://genhttp.org/features/#footprint) - Grade A+ security level according to SSL Labs +## 💻 Supported Platforms + +GenHTTP targets all .NET versions currently [supported by Microsoft](https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core). +Major versions are released once a year, following the .NET release cycle. +Additionally, our automated tests ensure full compatibility on the following platforms: + +| OS | Architectures | +|---------|-------------------------| +| Linux | `x64`, `arm32`, `arm64` | +| Windows | `x64`, `arm64` | +| macOS | `x64`, `arm64` | + ## 📖 Getting Started This section shows how to create a new project from scratch using project templates and how to extend your existing @@ -123,9 +135,3 @@ in C#. In 2024 the focus has shifted towards API development, dropping support f - Powered by [.NET](https://github.com/dotnet/core) - Modules implemented with [NSwag](https://github.com/RicoSuter/NSwag) (Open API), [Fleck](https://github.com/statianzo/Fleck) (WebSockets) - -## 👥 Contributors - - - - From 269e9496b803b17e560d74c86c7b5245300948f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 10:22:05 +0100 Subject: [PATCH 41/50] Adjust badge for the new workflow --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d6a961a85..488647874 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ GenHTTP is a lightweight web server written in pure C# with a strong focus on de purpose of this project is to quickly create web services written in .NET 8 / 9, allowing developers to concentrate on the functionality rather than on messing around with configuration files or complex concepts. -[![CI](https://github.com/Kaliumhexacyanoferrat/GenHTTP/actions/workflows/ci.yml/badge.svg)](https://github.com/Kaliumhexacyanoferrat/GenHTTP/actions/workflows/ci.yml) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=GenHTTP&metric=coverage)](https://sonarcloud.io/dashboard?id=GenHTTP) [![nuget Package](https://img.shields.io/nuget/v/GenHTTP.Core.svg)](https://www.nuget.org/packages/GenHTTP.Core/) [![View - Documentation](https://img.shields.io/badge/view-Documentation-AB54FF)](https://genhttp.org/documentation/) [![Discord](https://discordapp.com/api/guilds/1177529388229734410/widget.png?style=shield)](https://discord.gg/GwtDyUpkpV) +[![View - Documentation](https://img.shields.io/badge/view-Documentation-AB54FF)](https://genhttp.org/documentation/) [![Discord](https://discordapp.com/api/guilds/1177529388229734410/widget.png?style=shield)](https://discord.gg/GwtDyUpkpV) [![nuget Package](https://img.shields.io/nuget/v/GenHTTP.Core.svg)](https://www.nuget.org/packages/GenHTTP.Core/) [![Build](https://github.com/Kaliumhexacyanoferrat/GenHTTP/actions/workflows/build.yml/badge.svg)](https://github.com/Kaliumhexacyanoferrat/GenHTTP/actions/workflows/ci.yml) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=GenHTTP&metric=coverage)](https://sonarcloud.io/dashboard?id=GenHTTP) ## 🚀 Features From cfd5dfb55785cdc70aa3a7f22eb809d5d6f753c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 10:23:03 +0100 Subject: [PATCH 42/50] Remove build badge because its not too useful --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 488647874..712c31067 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ GenHTTP is a lightweight web server written in pure C# with a strong focus on de purpose of this project is to quickly create web services written in .NET 8 / 9, allowing developers to concentrate on the functionality rather than on messing around with configuration files or complex concepts. -[![View - Documentation](https://img.shields.io/badge/view-Documentation-AB54FF)](https://genhttp.org/documentation/) [![Discord](https://discordapp.com/api/guilds/1177529388229734410/widget.png?style=shield)](https://discord.gg/GwtDyUpkpV) [![nuget Package](https://img.shields.io/nuget/v/GenHTTP.Core.svg)](https://www.nuget.org/packages/GenHTTP.Core/) [![Build](https://github.com/Kaliumhexacyanoferrat/GenHTTP/actions/workflows/build.yml/badge.svg)](https://github.com/Kaliumhexacyanoferrat/GenHTTP/actions/workflows/ci.yml) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=GenHTTP&metric=coverage)](https://sonarcloud.io/dashboard?id=GenHTTP) +[![View - Documentation](https://img.shields.io/badge/view-Documentation-AB54FF)](https://genhttp.org/documentation/) [![Discord](https://discordapp.com/api/guilds/1177529388229734410/widget.png?style=shield)](https://discord.gg/GwtDyUpkpV) [![nuget Package](https://img.shields.io/nuget/v/GenHTTP.Core.svg)](https://www.nuget.org/packages/GenHTTP.Core/) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=GenHTTP&metric=coverage)](https://sonarcloud.io/dashboard?id=GenHTTP) ## 🚀 Features From f3867f91f286c806c1489c5c34e6a1d826d4c879 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 10:23:42 +0100 Subject: [PATCH 43/50] Put discord last again --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 712c31067..78243452b 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ GenHTTP is a lightweight web server written in pure C# with a strong focus on de purpose of this project is to quickly create web services written in .NET 8 / 9, allowing developers to concentrate on the functionality rather than on messing around with configuration files or complex concepts. -[![View - Documentation](https://img.shields.io/badge/view-Documentation-AB54FF)](https://genhttp.org/documentation/) [![Discord](https://discordapp.com/api/guilds/1177529388229734410/widget.png?style=shield)](https://discord.gg/GwtDyUpkpV) [![nuget Package](https://img.shields.io/nuget/v/GenHTTP.Core.svg)](https://www.nuget.org/packages/GenHTTP.Core/) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=GenHTTP&metric=coverage)](https://sonarcloud.io/dashboard?id=GenHTTP) +[![View - Documentation](https://img.shields.io/badge/view-Documentation-AB54FF)](https://genhttp.org/documentation/) [![nuget Package](https://img.shields.io/nuget/v/GenHTTP.Core.svg)](https://www.nuget.org/packages/GenHTTP.Core/) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=GenHTTP&metric=coverage)](https://sonarcloud.io/dashboard?id=GenHTTP) [![Discord](https://discordapp.com/api/guilds/1177529388229734410/widget.png?style=shield)](https://discord.gg/GwtDyUpkpV) ## 🚀 Features From 28f6260cb34df3293099735256718a753c6dfc51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 10:57:02 +0100 Subject: [PATCH 44/50] Rename to a human-readable name --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1d65c80fe..9de2c40c2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: 🔎 +name: Build on: pull_request: From f627f8d8903b848ca76ef0e718b2dc6dfc50b868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 11:59:21 +0100 Subject: [PATCH 45/50] Always use .NET 9 to allow usage of latest C# version in the future --- .github/workflows/build.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9de2c40c2..051468aa1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -167,13 +167,7 @@ jobs: - name: Checkout source uses: actions/checkout@v4 - - name: Setup .NET SDK ${{ matrix.dotnet }} - uses: actions/setup-dotnet@v4 - with: - dotnet-version: ${{ matrix.dotnet }} - - - name: Setup .NET 9 (for ARM64 on .NET 8) - if: matrix.runtime == 'linux-arm64' && matrix.arch == 'arm64' && matrix.dotnet == '8.0' + - name: Setup .NET SDK uses: actions/setup-dotnet@v4 with: dotnet-version: 9.0 From 60419de773f2aeba06e36d7122327e6fb3c1f91b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 12:07:55 +0100 Subject: [PATCH 46/50] Remove dependency to .NET within the matrix --- .github/workflows/build.yml | 58 ++----------------------------------- 1 file changed, 2 insertions(+), 56 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 051468aa1..bd25b1e19 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -53,7 +53,7 @@ jobs: verify: - name: ${{ matrix.os.name }} / .NET ${{ matrix.dotnet }} / ${{ matrix.arch }} + name: ${{ matrix.os.name }} ${{ matrix.arch }} needs: build @@ -67,101 +67,47 @@ jobs: matrix: include: - # Linux x64 - os: name: 🐧 runs-on: ubuntu-latest arch: x64 runtime: linux-x64 platform: linux/amd64 - dotnet: 8.0 - - os: - name: 🐧 - runs-on: ubuntu-latest - arch: x64 - runtime: linux-x64 - platform: linux/amd64 - dotnet: 9.0 - # Linux arm64 - - os: - name: 🐧 - runs-on: ubuntu-22.04-arm - arch: arm64 - runtime: linux-arm64 - platform: linux/arm64/v8 - dotnet: 8.0 - os: name: 🐧 runs-on: ubuntu-22.04-arm arch: arm64 runtime: linux-arm64 platform: linux/arm64/v8 - dotnet: 9.0 - # Windows x64 - - os: - name: 🪟 - runs-on: windows-latest - arch: x64 - runtime: win-x64 - platform: windows/amd64 - dotnet: 8.0 - os: name: 🪟 runs-on: windows-latest arch: x64 runtime: win-x64 platform: windows/amd64 - dotnet: 9.0 - # Windows arm64 - os: name: 🪟 runs-on: windows-latest arch: arm64 runtime: win-arm64 platform: windows/arm64 - dotnet: 8.0 - - os: - name: 🪟 - runs-on: windows-latest - arch: arm64 - runtime: win-arm64 - platform: windows/arm64 - dotnet: 9.0 - # macOS x64 - - os: - name: 🍎 - runs-on: macos-15-intel - arch: x64 - runtime: osx-x64 - platform: macos/amd64 - dotnet: 8.0 - os: name: 🍎 runs-on: macos-15-intel arch: x64 runtime: osx-x64 platform: macos/amd64 - dotnet: 9.0 - # macOS arm64 - - os: - name: 🍎 - runs-on: macos-15 - arch: arm64 - runtime: osx-arm64 - platform: macos/arm64 - dotnet: 8.0 - os: name: 🍎 runs-on: macos-15 arch: arm64 runtime: osx-arm64 platform: macos/arm64 - dotnet: 9.0 steps: - name: Checkout source @@ -173,4 +119,4 @@ jobs: dotnet-version: 9.0 - name: Build & Test (${{ matrix.runtime }}) - run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release -f net${{ matrix.dotnet }}.0 + run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release From e768a4707b0ef8b2c49596e1de101c233ed6d6e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20N=C3=A4geli?= Date: Tue, 28 Oct 2025 12:17:00 +0100 Subject: [PATCH 47/50] will this work? --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bd25b1e19..ecadab79f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -116,7 +116,9 @@ jobs: - name: Setup .NET SDK uses: actions/setup-dotnet@v4 with: - dotnet-version: 9.0 + dotnet-version: | + 8.0 + 9.0 - name: Build & Test (${{ matrix.runtime }}) run: dotnet test Testing/Acceptance/GenHTTP.Testing.Acceptance.csproj -c Release From fb6ff81df02f40824fac04d451f2330a89a75dbc Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Thu, 30 Oct 2025 16:39:55 +0100 Subject: [PATCH 48/50] Add arm32 linux step --- .github/workflows/build.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ecadab79f..2e88d15c3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -81,6 +81,13 @@ jobs: runtime: linux-arm64 platform: linux/arm64/v8 + - os: + name: 🐧 + runs-on: linux-arm32 + arch: arm32 + runtime: linux-arm + platform: linux/arm/v7 + - os: name: 🪟 runs-on: windows-latest From 03dfb1d818f5090200f5690c6926c1c126a85c40 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Thu, 30 Oct 2025 16:48:27 +0100 Subject: [PATCH 49/50] Skip .NET setup on arm32 --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2e88d15c3..db9d670ed 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -122,6 +122,7 @@ jobs: - name: Setup .NET SDK uses: actions/setup-dotnet@v4 + if: matrix.os.runs-on != 'linux-arm32' with: dotnet-version: | 8.0 From 787f9214eeecdd36e4587d37a789b671854be0c4 Mon Sep 17 00:00:00 2001 From: AKaliumhexacyanoferrat Date: Thu, 30 Oct 2025 17:00:17 +0100 Subject: [PATCH 50/50] Put arm32 before arm64 --- .github/workflows/build.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index db9d670ed..2e626e4ea 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -74,13 +74,6 @@ jobs: runtime: linux-x64 platform: linux/amd64 - - os: - name: 🐧 - runs-on: ubuntu-22.04-arm - arch: arm64 - runtime: linux-arm64 - platform: linux/arm64/v8 - - os: name: 🐧 runs-on: linux-arm32 @@ -88,6 +81,13 @@ jobs: runtime: linux-arm platform: linux/arm/v7 + - os: + name: 🐧 + runs-on: ubuntu-22.04-arm + arch: arm64 + runtime: linux-arm64 + platform: linux/arm64/v8 + - os: name: 🪟 runs-on: windows-latest