diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 416d6b96a..76580adae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,9 +14,20 @@ concurrency: jobs: test: - name: Test - runs-on: ubuntu-latest + name: Test (${{ matrix.os }}) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + - macos-latest + - windows-latest steps: + - name: Enable Git long paths (Windows) + if: ${{ matrix.os == 'windows-latest' }} + run: git config --global core.longpaths true + - uses: actions/checkout@v6 with: submodules: recursive @@ -34,16 +45,64 @@ jobs: run: cargo test - name: Format + if: ${{ matrix.os == 'ubuntu-latest' }} run: cargo fmt --all -- --check - name: Conformance + if: ${{ matrix.os == 'ubuntu-latest' }} run: | cargo run -p oxc_angular_conformance git diff --exit-code + napi-smoke: + name: NAPI Smoke (${{ matrix.os }}) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + - macos-latest + - windows-latest + steps: + - name: Enable Git long paths (Windows) + if: ${{ matrix.os == 'windows-latest' }} + run: git config --global core.longpaths true + + - uses: actions/checkout@v6 + with: + submodules: recursive + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + + - name: Cache Rust + uses: Swatinem/rust-cache@v2 + + - name: Install pnpm + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + + - name: Install Node.js + uses: actions/setup-node@v6 + with: + node-version: 24 + cache: pnpm + + - name: Install dependencies + run: pnpm install + + - name: Build + run: | + pnpm build-dev + pnpm --filter ./napi/angular-compiler build:ts + + - name: Test + run: pnpm test + napi: - name: NAPI Build + name: NAPI Build (Ubuntu E2E) runs-on: ubuntu-latest + needs: napi-smoke steps: - uses: actions/checkout@v6 with: @@ -77,7 +136,6 @@ jobs: - name: Test run: | - pnpm test pnpm --filter ./napi/angular-compiler exec playwright install --with-deps pnpm test:e2e - name: Compare tests