name: CI on: push: branches: ["**"] pull_request: jobs: windows-baseline: name: Windows baseline runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: 22 cache: npm - name: Set up Rust toolchain run: rustup show - name: Install frontend dependencies run: npm ci - name: Check frontend formatting run: npm run format:check - name: Run frontend lints run: npm run lint - name: Check frontend types run: npm run typecheck - name: Run frontend tests run: npm test -- --run - name: Build frontend run: npm run build - name: Check Rust formatting working-directory: src-tauri run: cargo fmt --all -- --check - name: Run Rust lints working-directory: src-tauri run: cargo clippy --all-targets --all-features -- -D warnings - name: Test component catalog contract working-directory: src-tauri run: cargo test --test component_catalog_tests - name: Run Rust tests working-directory: src-tauri run: cargo test --all-targets - name: Check Tauri environment run: npm run tauri -- info - name: Check runtime PowerShell boundary shell: pwsh run: .\scripts\check-runtime-powershell-boundary.ps1 -CheckOnly - name: Plan component bundle update shell: pwsh run: .\scripts\update-component-bundle.ps1 -PlanOnly - name: Check component bundle shell: pwsh run: .\scripts\update-component-bundle.ps1 -CheckOnly - name: Plan Windows smoke evidence capture shell: pwsh run: .\scripts\audit-windows-smoke.ps1 -Mode PlanOnly - name: Plan release preparation shell: pwsh run: .\scripts\prepare-release.ps1 -PlanOnly -SkipBuild - name: Test release workflow with local Git remotes run: node --test scripts/prepare-release.check.mjs