pnpm/Setup pnpm with runtime
Install pnpm and a JavaScript runtime (Node.js, Bun, or Deno) in one step
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Stale
- License
- None
Inputs
| name | description | required | default |
|---|---|---|---|
| version | Version of pnpm to install | no | — |
| dest | Where to store pnpm files | no | ~/setup-pnpm |
| runtime | Runtime to install, in `<name>` or `<name>@<version>` form (matching pnpm's `packageManager` field syntax). Supported names: `node`, `bun`, `deno`. Examples: `node@22`, `node@lts`, `node@^24.4.0`, `bun@latest`, `deno@2`. When the version is omitted, the action falls back to the version declared in `devEngines.runtime` for the same name, or to `lts` (for `node`) / `latest` for others. If this input is omitted entirely, the action reads `devEngines.runtime` from the project's package.json. If that is also missing, no runtime is installed. | no | — |
| cache | Whether to cache the pnpm store directory | no | false |
| cache-dependency-path | File path to the pnpm lockfile, which contents hash will be used as a cache key | no | pnpm-lock.yaml |
| package-json-file | File path to the package.json to read `packageManager` and `devEngines.runtime` configuration. This path must be relative to the repository root (GITHUB_WORKSPACE). | no | package.json |
| install | Whether to run `pnpm install` after pnpm and the runtime are set up. When set to `true` (the default), the action runs `pnpm install` in the workspace when a package.json is present. When the `runtime` input is also set, `--no-runtime` is appended automatically so the installed runtime isn't shadowed by a different version declared in `devEngines.runtime`. Set to `false` to skip the install step — useful for jobs that only need pnpm itself (e.g. `pnpm audit`, lockfile-only regeneration). | no | true |
Outputs
| name | description |
|---|---|
| dest | Expanded path of inputs#dest |
| bin-dest | Location of `pnpm` and `pnpx` command |
| runtime-name | Name of the installed runtime (`node`, `bun`, or `deno`), or empty if none was installed |
| runtime-version | Resolved version of the installed runtime, or empty if none was installed |