setup-pnpm/README.md

134 lines
2.8 KiB
Markdown
Raw Normal View History

2020-05-08 15:44:30 +08:00
# Setup PNPM
Install PNPM package manager.
## Inputs
### `version`
**Required** Version of PNPM to install.
### `dest`
**Optional** Where to store PNPM files.
### `bin_dest`
**Optional** Where to store executables (`pnpm` and `pnpx` commands).
### `registry`
2020-05-10 13:00:23 +08:00
**Optional** (_default:_ `https://registry.npmjs.com`) Registry to download PNPM from.
2020-05-08 15:44:30 +08:00
2020-05-09 20:13:46 +08:00
### `run_install`
2020-05-10 13:00:23 +08:00
**Optional** (_default:_ `null`) If specified, run `pnpm install`.
2020-05-09 20:13:46 +08:00
2020-05-10 13:08:45 +08:00
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.
2020-05-10 13:14:27 +08:00
If `run_install` is a YAML string representation of either an object or an array, pnpm will execute every install commands.
2020-05-10 13:08:45 +08:00
#### `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]`.
2020-05-08 15:44:30 +08:00
## Outputs
### `dest`
Expanded path of inputs#dest.
### `bin_dest`
2020-05-08 22:23:23 +08:00
Expanded path of inputs#bin_dest.
2020-05-08 15:44:30 +08:00
## Usage example
2020-05-10 13:14:27 +08:00
### Just install PNPM
```yaml
on:
- push
- pull_request
jobs:
runs-on: ubuntu-latest
steps:
- uses: pnpm/action-setup@v1.2.1
2020-05-10 13:14:27 +08:00
with:
version: 5.17.2
2020-05-10 13:14:27 +08:00
```
### Install PNPM and a few NPM packages
2020-05-08 15:44:30 +08:00
```yaml
on:
- push
- pull_request
jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: pnpm/action-setup@v1.2.1
2020-05-08 15:44:30 +08:00
with:
version: 5.17.2
2020-05-10 13:14:27 +08:00
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
- args: [--global, gulp, prettier, typescript]
2020-05-08 15:44:30 +08:00
```
### Use cache to reduce installation time
```yaml
on:
- push
- pull_request
jobs:
runs-on: ubuntu-latest
steps:
build:
- uses: actions/checkout@v2
- name: Cache pnpm modules
uses: actions/cache@v2
env:
cache-name: cache-pnpm-modules
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}-${{ hashFiles('**/package.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}-
- uses: pnpm/action-setup@v1.2.1
with:
version: 5.17.2
run_install: true
```
**Note:** You don't need to run `pnpm store prune` at the end; post-action has already taken care of that.
2020-05-08 15:44:30 +08:00
## Notes
2020-05-08 15:57:48 +08:00
This action does not setup Node.js for you, use [actions/setup-node](https://github.com/actions/setup-node) yourself.
2020-05-08 15:44:30 +08:00
## License
[MIT](https://git.io/JfclH) © [Hoàng Văn Khải](https://github.com/KSXGitHub/)