diff --git a/README.md b/README.md index 5bd5415..549d5a4 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,61 @@ -> ## :warning: Upgrade from v2! +> [!IMPORTANT] +> **This action has a successor: [`pnpm/setup`](https://github.com/pnpm/setup).** > -> The v2 version of this action [has stopped working](https://github.com/pnpm/action-setup/issues/135) with newer Node.js versions. Please, upgrade to the latest version to fix any issues. +> For pnpm v11 and newer, use [`pnpm/setup`](https://github.com/pnpm/setup) instead. It downloads pnpm's self-contained release binary (no Node.js or npm required) and can install a JavaScript runtime (Node.js, Bun, or Deno) in the same step, replacing `actions/setup-node`. +> +> `pnpm/action-setup` remains the action to use for installing pnpm v10 and older. See [Migrating to pnpm/setup](#migrating-to-pnpmsetup) below. # Setup pnpm Install pnpm package manager. +> ## :warning: Upgrade from v2! +> +> The v2 version of this action [has stopped working](https://github.com/pnpm/action-setup/issues/135) with newer Node.js versions. Please, upgrade to the latest version to fix any issues. + +## Migrating to pnpm/setup + +[`pnpm/setup`](https://github.com/pnpm/setup) installs pnpm v11+ as a native standalone executable and can install Node.js, Bun, or Deno in the same step, so a typical workflow no longer needs `actions/setup-node` or an explicit `pnpm install` step: + +```yaml +steps: + - uses: actions/checkout@v6 + + # Before: + # - uses: pnpm/action-setup@v6 + # with: + # version: 10 + # cache: true + # - uses: actions/setup-node@v4 + # with: + # node-version: 22 + # - run: pnpm install + + # After: + - uses: pnpm/setup@v1 + with: + version: 11 + runtime: node@22 + cache: true +``` + +The `version` input can be omitted only when `packageManager` (or `devEngines.packageManager`) in `package.json` declares pnpm v11 or newer; otherwise keep it explicit, since `pnpm/setup` requires pnpm v11+. + +Input and output changes: + +| `pnpm/action-setup` | `pnpm/setup` | Notes | +| ------------------- | ------------ | ----- | +| `version` | `version` | Must resolve to pnpm v11 or newer. As before, it can be omitted when `packageManager` (or `devEngines.packageManager`) is set in `package.json`. | +| `dest` | `dest` | Unchanged. | +| `run_install` | `install` | `pnpm/setup` runs `pnpm install` automatically when a `package.json` is present (`install: true` by default); set `install: false` to skip it. The object/array form (`recursive`, `cwd`, `args`) is not supported — run those commands in separate steps. | +| `cache` | `cache` | Unchanged. | +| `cache_dependency_path` | `cache-dependency-path` | Renamed to kebab-case. | +| `package_json_file` | `package-json-file` | Renamed to kebab-case. | +| `standalone` | removed | `pnpm/setup` always installs the standalone native executable. | +| n/a | `runtime` | New: installs Node.js, Bun, or Deno (e.g. `node@22`, `bun@latest`, `deno@2`), or reads `devEngines.runtime` from `package.json`. | +| n/a | `token` | New: GitHub token for release lookup; defaults to `${{ github.token }}` and rarely needs to be set. | +| `bin_dest` (output) | `bin-dest` (output) | Renamed to kebab-case. New outputs `runtime-name` and `runtime-version` describe the installed runtime. | + ## Inputs ### `version` @@ -187,7 +237,7 @@ jobs: ## Notes -This action does not setup Node.js for you, use [actions/setup-node](https://github.com/actions/setup-node) yourself. +This action does not set up Node.js. Use [actions/setup-node](https://github.com/actions/setup-node) yourself. If you are on pnpm v11 or newer, [`pnpm/setup`](https://github.com/pnpm/setup) can install pnpm and Node.js in a single step. ## License