Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pnpm/action-setup
Install pnpm package manager
https://github.com/pnpm/action-setup
actions ci github-actions nodejs pnpm
Last synced: 3 days ago
JSON representation
Install pnpm package manager
- Host: GitHub
- URL: https://github.com/pnpm/action-setup
- Owner: pnpm
- License: mit
- Created: 2020-05-08T10:06:29.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-08-14T14:07:48.000Z (4 months ago)
- Last Synced: 2024-10-29T15:22:24.618Z (about 1 month ago)
- Topics: actions, ci, github-actions, nodejs, pnpm
- Language: TypeScript
- Homepage: https://github.com/marketplace/actions/setup-pnpm
- Size: 3.51 MB
- Stars: 930
- Watchers: 5
- Forks: 89
- Open Issues: 46
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
- jimsghstars - pnpm/action-setup - Install pnpm package manager (TypeScript)
README
> ## :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.# Setup pnpm
Install pnpm package manager.
## Inputs
### `version`
Version of pnpm to install.
**Optional** when there is a [`packageManager` field in the `package.json`](https://nodejs.org/api/corepack.html).
otherwise, this field is **required** It supports npm versioning scheme, it could be an exact version (such as `6.24.1`), or a version range (such as `6`, `6.x.x`, `6.24.x`, `^6.24.1`, `*`, etc.), or `latest`.
### `dest`
**Optional** Where to store pnpm files.
### `run_install`
**Optional** (_default:_ `null`) If specified, run `pnpm install`.
If `run_install` is either `null` or `false`, pnpm will not install any npm package.
If `run_install` is `true`, pnpm will install dependencies recursively.
If `run_install` is a YAML string representation of either an object or an array, pnpm will execute every install commands.
#### `run_install.recursive`
**Optional** (_type:_ `boolean`, _default:_ `false`) Whether to use `pnpm recursive install`.
#### `run_install.cwd`
**Optional** (_type:_ `string`) Working directory when run `pnpm [recursive] install`.
#### `run_install.args`
**Optional** (_type:_ `string[]`) Additional arguments after `pnpm [recursive] install`, e.g. `[--frozen-lockfile, --strict-peer-dependencies]`.
### `package_json_file`
**Optional** (_type:_ `string`, _default:_ `package.json`) File path to the `package.json` to read "packageManager" configuration.
### `standalone`
**Optional** (_type:_ `boolean`, _default:_ `false`) When set to true, [@pnpm/exe](https://www.npmjs.com/package/@pnpm/exe), which is a Node.js bundled package, will be installed, enabling using `pnpm` without Node.js.
This is useful when you want to use a incompatible pair of Node.js and pnpm.
## Outputs
### `dest`
Expanded path of inputs#dest.
### `bin_dest`
Location of `pnpm` and `pnpx` command.
## Usage example
### Install only pnpm without `packageManager`
This works when the repo either doesn't have a `package.json` or has a `package.json` but it doesn't specify `packageManager`.
```yaml
on:
- push
- pull_requestjobs:
install:
runs-on: ubuntu-lateststeps:
- uses: pnpm/action-setup@v4
with:
version: 9
```### Install only pnpm with `packageManager`
Omit `version` input to use the version in the [`packageManager` field in the `package.json`](https://nodejs.org/api/corepack.html).
```yaml
on:
- push
- pull_requestjobs:
install:
runs-on: ubuntu-lateststeps:
- uses: pnpm/action-setup@v4
```### Install pnpm and a few npm packages
```yaml
on:
- push
- pull_requestjobs:
install:
runs-on: ubuntu-lateststeps:
- uses: actions/checkout@v4- uses: pnpm/action-setup@v4
with:
version: 9
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
- args: [--global, gulp, prettier, typescript]
```### Use cache to reduce installation time
```yaml
on:
- push
- pull_requestjobs:
cache-and-install:
runs-on: ubuntu-lateststeps:
- name: Checkout
uses: actions/checkout@v4- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9
run_install: false- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'- name: Install dependencies
run: pnpm install
```**Note:** You don't need to run `pnpm store prune` at the end; post-action has already taken care of that.
## Notes
This action does not setup Node.js for you, use [actions/setup-node](https://github.com/actions/setup-node) yourself.
## License
[MIT](https://github.com/pnpm/action-setup/blob/master/LICENSE.md) © [Hoàng Văn Khải](https://github.com/KSXGitHub/)