From 37945e0803802a30bda380e41f612c3b95e974c2 Mon Sep 17 00:00:00 2001 From: Keith Zantow Date: Tue, 28 Jul 2026 10:51:29 -0400 Subject: [PATCH 1/5] chore: add windows unit test runner Signed-off-by: Keith Zantow --- .github/workflows/validations.yaml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/validations.yaml b/.github/workflows/validations.yaml index b4bb10ec2eb..6b9de6a5547 100644 --- a/.github/workflows/validations.yaml +++ b/.github/workflows/validations.yaml @@ -24,7 +24,7 @@ jobs: # tmpfs: faster io-intensive workflows # note: s3-cache intentionally omitted -- PR runs are untrusted and must not write to the # shared cache backend that the trusted release workflow reads from (cache poisoning). - runs-on: &test-runner "runs-on=${{ github.run_id }}/cpu=4+8/ram=32+128/family=r5+r6+r7+r8+m4+m5+m6+m7+m8/spot=price-capacity-optimized/extras=tmpfs" + runs-on: &linux-test-runner "runs-on=${{ github.run_id }}/cpu=4+8/ram=32+128/family=r5+r6+r7+r8+m4+m5+m6+m7+m8/spot=price-capacity-optimized/extras=tmpfs" permissions: contents: read steps: @@ -46,7 +46,12 @@ jobs: Unit-Test: # Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline name: "Unit tests" - runs-on: *test-runner + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: + - *linux-test-runner + - runs-on=${{ github.run_id }}/image=windows25-full-x64/family=r5+r6+r7+r8+m4+m5+m6+m7+m8/spot=price-capacity-optimized permissions: contents: read steps: @@ -68,7 +73,7 @@ jobs: Integration-Test: # Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline name: "Integration tests" - runs-on: *test-runner + runs-on: *linux-test-runner permissions: contents: read steps: @@ -131,7 +136,7 @@ jobs: # Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline name: "Acceptance tests (Linux)" needs: [Build-Snapshot-Artifacts] - runs-on: *test-runner + runs-on: *linux-test-runner permissions: contents: read steps: @@ -209,7 +214,7 @@ jobs: # Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline name: "CLI tests (Linux)" needs: [Build-Snapshot-Artifacts] - runs-on: *test-runner + runs-on: *linux-test-runner permissions: contents: read steps: From 4c1397d210e4d8f8e9de2e22f5787423e5197719 Mon Sep 17 00:00:00 2001 From: Keith Zantow Date: Tue, 28 Jul 2026 11:14:14 -0400 Subject: [PATCH 2/5] chore: hack around runs-on windows runner limitations Signed-off-by: Keith Zantow --- .github/actions/bootstrap/action.yaml | 4 +- .github/workflows/validations.yaml | 63 ++++++++++++++++++++++++--- 2 files changed, 58 insertions(+), 9 deletions(-) diff --git a/.github/actions/bootstrap/action.yaml b/.github/actions/bootstrap/action.yaml index aad6d609085..e942ef3fadb 100644 --- a/.github/actions/bootstrap/action.yaml +++ b/.github/actions/bootstrap/action.yaml @@ -38,7 +38,7 @@ runs: - name: Install binny-managed tools shell: bash - run: make binny:install + run: go run -c .make . binny:install - name: Install apt packages if: inputs.bootstrap-apt-packages != '' @@ -68,4 +68,4 @@ runs: - name: Download test fixture cache if: inputs.download-test-fixture-cache == 'true' shell: bash - run: make download-test-fixture-cache + run: go run -c .make . download-test-fixture-cache diff --git a/.github/workflows/validations.yaml b/.github/workflows/validations.yaml index 6b9de6a5547..1839e68e4a4 100644 --- a/.github/workflows/validations.yaml +++ b/.github/workflows/validations.yaml @@ -46,12 +46,7 @@ jobs: Unit-Test: # Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline name: "Unit tests" - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: - - *linux-test-runner - - runs-on=${{ github.run_id }}/image=windows25-full-x64/family=r5+r6+r7+r8+m4+m5+m6+m7+m8/spot=price-capacity-optimized + runs-on: *linux-test-runner permissions: contents: read steps: @@ -70,6 +65,25 @@ jobs: - name: Check for capability drift run: make check-capability-drift + Unit-Test-Windows: + # Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline + name: "Unit tests (Windows)" + runs-on: runs-on=${{ github.run_id }}/image=windows25-full-x64/family=r5+r6+r7+r8+m4+m5+m6+m7+m8/spot=price-capacity-optimized + permissions: + contents: read + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 #v7.0.1 + with: + persist-credentials: false + + - name: Bootstrap environment + uses: ./.github/actions/bootstrap + with: + download-test-fixture-cache: true + + - name: Run unit tests + run: make unit + Integration-Test: # Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline name: "Integration tests" @@ -192,7 +206,6 @@ jobs: uses: ./.github/actions/bootstrap with: bootstrap-apt-packages: "" - go-dependencies: false download-test-fixture-cache: true - name: Download snapshot artifacts @@ -210,6 +223,42 @@ jobs: - name: Run install.sh tests (Mac) run: make install-test-ci-mac + Acceptance-Windows: + # Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline + name: "Acceptance tests (Windows)" +# needs: [Build-Snapshot-Artifacts] + runs-on: runs-on=${{ github.run_id }}/image=windows25-full-x64/family=r5+r6+r7+r8+m4+m5+m6+m7+m8/spot=price-capacity-optimized + permissions: + contents: read + steps: + - name: Install Cosign + uses: sigstore/cosign-installer@6f9f17788090df1f26f669e9d70d6ae9567deba6 # v4.1.2 + + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 #v7.0.1 + with: + persist-credentials: false + + - name: Bootstrap environment + uses: ./.github/actions/bootstrap + with: + bootstrap-apt-packages: "" + download-test-fixture-cache: true + + - name: Unit tests + run: go run -c .make . test + +# - name: Download snapshot artifacts +# uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c #v8.0.1 +# with: +# name: snapshot +# path: snapshot + +# - name: Run comparison tests (Windows) +# run: make compare-win +# +# - name: Run install.sh tests (Windows) +# run: make install-test-ci-win + Cli-Linux: # Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline name: "CLI tests (Linux)" From 3842959d2add178f2c0f1c3d3bb9493c90ffaa1b Mon Sep 17 00:00:00 2001 From: Keith Zantow Date: Tue, 28 Jul 2026 11:19:30 -0400 Subject: [PATCH 3/5] chore: fix typo Signed-off-by: Keith Zantow --- .github/actions/bootstrap/action.yaml | 4 ++-- .github/workflows/validations.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/bootstrap/action.yaml b/.github/actions/bootstrap/action.yaml index e942ef3fadb..e55cee894a7 100644 --- a/.github/actions/bootstrap/action.yaml +++ b/.github/actions/bootstrap/action.yaml @@ -38,7 +38,7 @@ runs: - name: Install binny-managed tools shell: bash - run: go run -c .make . binny:install + run: go run -C .make . binny:install - name: Install apt packages if: inputs.bootstrap-apt-packages != '' @@ -68,4 +68,4 @@ runs: - name: Download test fixture cache if: inputs.download-test-fixture-cache == 'true' shell: bash - run: go run -c .make . download-test-fixture-cache + run: go run -C .make . download-test-fixture-cache diff --git a/.github/workflows/validations.yaml b/.github/workflows/validations.yaml index 1839e68e4a4..c214c8b3f7d 100644 --- a/.github/workflows/validations.yaml +++ b/.github/workflows/validations.yaml @@ -245,7 +245,7 @@ jobs: download-test-fixture-cache: true - name: Unit tests - run: go run -c .make . test + run: go run -C .make . test # - name: Download snapshot artifacts # uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c #v8.0.1 From 759f1d30c80780b7aa297800f880ee11e1799c2f Mon Sep 17 00:00:00 2001 From: Keith Zantow Date: Wed, 29 Jul 2026 10:43:08 -0400 Subject: [PATCH 4/5] chore: use github windows runner Signed-off-by: Keith Zantow --- .github/workflows/validations.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/validations.yaml b/.github/workflows/validations.yaml index c214c8b3f7d..44bb7fdae1a 100644 --- a/.github/workflows/validations.yaml +++ b/.github/workflows/validations.yaml @@ -227,7 +227,7 @@ jobs: # Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline name: "Acceptance tests (Windows)" # needs: [Build-Snapshot-Artifacts] - runs-on: runs-on=${{ github.run_id }}/image=windows25-full-x64/family=r5+r6+r7+r8+m4+m5+m6+m7+m8/spot=price-capacity-optimized + runs-on: windows-2022 permissions: contents: read steps: From aa3ac478b99cb8929c3a35fa36ce63b532156eb1 Mon Sep 17 00:00:00 2001 From: Keith Zantow Date: Mon, 3 Aug 2026 10:34:03 -0400 Subject: [PATCH 5/5] chore: add gitattributes to use eol=lf for all text files Signed-off-by: Keith Zantow --- .gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000000..6313b56c578 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf