From e6e587b97d82db3cf2da8d09413863a66a0798e7 Mon Sep 17 00:00:00 2001 From: imccyu <276526105+imccyu@users.noreply.github.com> Date: Wed, 15 Jul 2026 16:27:10 +0800 Subject: [PATCH] ci: add a native-Windows build lane (install + build) Runs `pnpm install` + `pnpm run build` (tsc -b + tsdown) on windows-2025, and is listed in all-checks-passed `needs` so a Windows build regression cannot land silently. Windows path/shell support is still partial, so this lane covers the build surface only; tests and gates are not run here yet. --- .github/workflows/ci.yml | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e45d6698e5..884a0417e3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -160,6 +160,29 @@ jobs: - name: Run complete keyless Python suite run: uv run --python 3.10 --group test --project python/sdk pytest + # Windows build lane: install + `pnpm run build` (tsc -b + tsdown) on native + # Windows. Windows path/shell support is still partial, so this lane covers + # the build surface only — tests and gates are not run here yet. Wired into + # all-checks-passed so a native-Windows build regression cannot land silently. + windows-build: + runs-on: windows-2025 + name: windows / build + steps: + - uses: actions/checkout@v6 + + - uses: actions/setup-node@v6 + with: + node-version: ${{ env.PRIMARY_NODE_VERSION }} + + - name: Enable corepack (pnpm) + run: corepack enable + + - name: Install (immutable) + run: pnpm install --frozen-lockfile + + - name: Build (tsc -b + tsdown) + run: pnpm run build + # Single stable required check for branch protection: require "all checks # passed" instead of enumerating matrix legs whose names change as lanes and # node versions evolve. Every other job in THIS workflow must be listed in @@ -171,7 +194,7 @@ jobs: all-checks-passed: name: all checks passed runs-on: ubuntu-latest - needs: [node-24, node-compat, python-sdk] + needs: [node-24, node-compat, python-sdk, windows-build] if: always() steps: - name: Fail if any needed job did not succeed