name: Windows CI on: push permissions: contents: read jobs: surface-diag: runs-on: windows-latest timeout-minutes: 90 env: CI: 'true' steps: - uses: actions/checkout@v4 timeout-minutes: 10 - uses: actions/setup-node@v4 timeout-minutes: 10 with: node-version: '24.11.1' cache: npm - name: Clean install run: npm ci timeout-minutes: 10 - name: Provision Electron binary run: | npx install-electron --no if ($LASTEXITCODE -ne 0) { npx install-electron --no if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } } timeout-minutes: 10 - name: Build run: npm run build timeout-minutes: 10 - name: Surface after build run: node scripts/../surface-check.js after-build - name: Focused Electron smoke run: npm run test:e2e:focused timeout-minutes: 10 - name: Surface after focused smoke run: node surface-check.js after-focused - name: Cutter media matrix run: node scripts/smoke-test-cutter-media-matrix.js timeout-minutes: 10 - name: Surface after matrix run: node surface-check.js after-matrix - name: Clean managed tools provision and repair run: npm run test:managed-tools-live timeout-minutes: 10 - name: Surface after managed tools live run: node surface-check.js after-managed-tools - name: Package directory run: | npm run pack if ($LASTEXITCODE -ne 0) { npm run pack if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } } timeout-minutes: 10 - name: Surface after pack run: node surface-check.js after-pack - name: Packaged launch smoke run: npm run test:packaged-launch timeout-minutes: 10 - name: Surface after packaged launch run: node surface-check.js after-packaged-launch - name: Build installer run: | npm run dist:ci if ($LASTEXITCODE -ne 0) { npm run dist:ci if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } } timeout-minutes: 10 - name: Surface after dist run: node surface-check.js after-dist