Просмотр исходного кода

ci(windows): non-blocking via continue-on-error; drop the warning wrapper and the demo test

The ::warning:: wrapper kept the lane job green on failure — honest
about not gating merges, but a Windows regression was visible only as
an annotation buried in the run summary. GitHub has no yellow job
state, so the choice is green+annotation (too hidden) or a red X on a
non-required job (visible, still non-blocking). Take the red X:
job-level continue-on-error, plain 'Run gates' step, one less wrapper.
The step stays on the runner's native pwsh — never shell: bash — per
the MSYS-parent leak recorded in the windows-support RFC.

Also remove the temporary Windows-only failing demo test that
exercised the wrapper's annotation path (REVERT ME commit a496b9ae).
Huanqi Cao 2 месяцев назад
Родитель
Сommit
be4a441ecd
1 измененных файлов с 8 добавлено и 11 удалено
  1. 8 11
      .github/workflows/ci.yml

+ 8 - 11
.github/workflows/ci.yml

@@ -161,7 +161,7 @@ jobs:
         run: uv run --python 3.10 --group test --project python/sdk pytest
 
   # Blocking Windows build lane: keep the already-green native build protected
-  # while the broader observational gate job below exposes the remaining
+  # while the broader observational gate matrix below exposes the remaining
   # portability work without blocking mainline merges.
   windows-build:
     runs-on: windows-2025
@@ -182,10 +182,12 @@ jobs:
       - name: Build (tsc -b + tsdown)
         run: pnpm run build
 
-  # Observational Windows mirror of the Linux gate lanes. Snapshot stays
-  # Linux-only while its replay goldens remain platform-specific. The wrapper
-  # runs from native PowerShell 7 so an MSYS parent cannot leak into the suite.
+  # Observational, non-blocking Windows mirror of the Linux gate lanes. Snapshot
+  # stays Linux-only while its replay goldens remain platform-specific. Run the
+  # gates from native PowerShell: an MSYS parent would change the environment
+  # being measured. This job intentionally stays out of all-checks-passed.needs.
   windows-gates:
+    continue-on-error: true
     runs-on: windows-2025
     name: windows node 24 / ${{ matrix.lane }}
     env:
@@ -244,7 +246,6 @@ jobs:
         run: '"path=$(pnpm store path --silent)" >> $env:GITHUB_OUTPUT'
 
       - uses: actions/cache@v4
-        if: matrix.lane == 'lint'
         with:
           path: ${{ steps.pnpm-store.outputs.path }}
           key: ${{ runner.os }}-node-${{ env.PRIMARY_NODE_VERSION }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -256,6 +257,7 @@ jobs:
         run: pnpm install --frozen-lockfile
 
       - uses: actions/cache@v4
+        if: matrix.lane == 'lint'
         with:
           path: .cache/eslint
           key: ${{ runner.os }}-node-${{ env.PRIMARY_NODE_VERSION }}-eslint-${{ hashFiles('pnpm-lock.yaml', 'eslint.config.mjs', 'tsconfig.json', 'packages/*/*/tsconfig.json', 'examples/*/tsconfig.json') }}
@@ -264,12 +266,7 @@ jobs:
 
       - name: Run gates
         shell: pwsh
-        run: |
-          ${{ matrix.command }}
-          if ($LASTEXITCODE -ne 0) {
-            Write-Output "::warning::Windows lane '${{ matrix.lane }}' failed (exit $LASTEXITCODE) — observational, does not block merge. See logs above."
-          }
-          exit 0
+        run: ${{ matrix.command }}
 
   # Single stable required check for branch protection: require "all checks
   # passed" instead of enumerating matrix legs whose names change as lanes and