diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 28c1a25d..1a1b674d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,9 +19,15 @@ env: jobs: test-go: name: Test Go - runs-on: rspack-ubuntu-22.04-large + runs-on: ${{ matrix.runner }} strategy: matrix: + runner: + [ + rspack-ubuntu-22.04-large, + rspack-windows-2022-large, + rspack-darwin-14-medium, + ] go-version: ['1.24.1'] steps: - name: Checkout code @@ -53,9 +59,15 @@ jobs: test-node: name: Test npm packages - runs-on: rspack-ubuntu-22.04-large + runs-on: ${{ matrix.os }} strategy: matrix: + os: + [ + rspack-ubuntu-22.04-large, + rspack-windows-2022-large, + rspack-darwin-14-medium, + ] go-version: ['1.24.1'] steps: - name: Checkout code @@ -87,8 +99,8 @@ jobs: - name: TypeCheck run: pnpm typecheck - - name: Install xvfb and dependencies - if: ${{ runner.os == 'Linux' && runner.environment == 'self-hosted' }} + - name: Install xvfb and dependencies (Linux only) + if: ${{ runner.os == 'Linux' }} run: | sudo apt update sudo apt install -y libasound2 libgbm1 libgtk-3-0 libnss3 xvfb @@ -97,16 +109,16 @@ jobs: uses: lynx-infra/cache@5c6160a6a4c7fca80a2f3057bb9dfc9513fcb732 with: path: packages/vscode-extension/.vscode-test - key: 'vscode-test' + key: vscode-test-${{ matrix.os }} restore-keys: | - - 'vscode-test-' + vscode-test-${{ matrix.os }}- - name: Test on Linux - if: runner.os == 'Linux' + if: ${{ runner.os == 'Linux' }} run: xvfb-run -a pnpm -r test - name: Test on non-Linux - if: runner.os != 'Linux' + if: ${{ runner.os != 'Linux' }} run: pnpm -r test - name: Check Spell @@ -120,7 +132,7 @@ jobs: - test-go - test-node if: always() - runs-on: rspack-ubuntu-22.04-large + runs-on: ubuntu-latest name: CI Done steps: - run: exit 1 diff --git a/scripts/build-npm.mjs b/scripts/build-npm.mjs index da2c10be..9cc94a13 100644 --- a/scripts/build-npm.mjs +++ b/scripts/build-npm.mjs @@ -18,7 +18,8 @@ async function build_all() { { os: 'windows', arch: 'arm64', 'node-arch': 'arm64', 'node-os': 'win32' }, ]; for (const platform of platforms) { - await $`GOOS=${platform.os} GOARCH=${platform.arch} go build -o npm/${platform['node-os'] || platform.os}-${platform['node-arch']}/rslint ./cmd/rslint`; + const binaryName = platform.os === 'windows' ? 'rslint.exe' : 'rslint'; + await $`GOOS=${platform.os} GOARCH=${platform.arch} go build -o npm/${platform['node-os'] || platform.os}-${platform['node-arch']}/${binaryName} ./cmd/rslint`; } } async function main() {