diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1922b98e5..89e9e8f7c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -169,6 +169,67 @@ jobs: - name: Run ${{ matrix.task }} (${{ matrix.runtime }}) run: ${{ matrix.command }} + checks-macos: + if: github.event_name == 'pull_request' + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + include: + - task: test + command: pnpm test + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: false + + - name: Checkout submodules (retry) + run: | + set -euo pipefail + git submodule sync --recursive + for attempt in 1 2 3 4 5; do + if git -c protocol.version=2 submodule update --init --force --depth=1 --recursive; then + exit 0 + fi + echo "Submodule update failed (attempt $attempt/5). Retrying…" + sleep $((attempt * 10)) + done + exit 1 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + check-latest: true + + - name: Runtime versions + run: | + node -v + npm -v + + - name: Capture node path + run: echo "NODE_BIN=$(dirname \"$(node -p \"process.execPath\")\")" >> "$GITHUB_ENV" + + - name: Enable corepack and pin pnpm + run: | + corepack enable + corepack prepare pnpm@10.23.0 --activate + pnpm -v + + - name: Install dependencies + env: + CI: true + run: | + export PATH="$NODE_BIN:$PATH" + which node + node -v + pnpm -v + pnpm install --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true || pnpm install --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true + + - name: Run ${{ matrix.task }} + run: ${{ matrix.command }} + macos-app: if: github.event_name == 'pull_request' runs-on: macos-latest