diff --git a/.github/workflows/node-ci.yml b/.github/workflows/node-ci.yml index 3be3144..342341f 100644 --- a/.github/workflows/node-ci.yml +++ b/.github/workflows/node-ci.yml @@ -109,12 +109,16 @@ jobs: with: bun-version: ${{ inputs.bun-version }} - - if: ${{ inputs.package-manager != 'bun' }} - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 + # Runs for EVERY package manager, bun included. bun is the PM/runtime, but + # native and postinstall deps (sharp, cypress, …) spawn `node` during + # `bun install`, so a modern Node must be on PATH regardless — otherwise + # a runner whose system `node` is old (common on self-hosted) crashes the + # install. No npm/yarn/pnpm cache for bun; bun manages its own store. + - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: ${{ inputs.node-version }} - cache: ${{ inputs.package-manager == 'yarn' && 'yarn' || inputs.package-manager == 'pnpm' && 'pnpm' || 'npm' }} - cache-dependency-path: ${{ inputs.cache-dependency-path }} + cache: ${{ inputs.package-manager == 'yarn' && 'yarn' || inputs.package-manager == 'pnpm' && 'pnpm' || inputs.package-manager == 'npm' && 'npm' || '' }} + cache-dependency-path: ${{ inputs.package-manager == 'bun' && '' || inputs.cache-dependency-path }} - name: Install env: