2021-03-27 19:45:01 +08:00
|
|
|
# Setup pnpm
|
2020-05-08 15:44:30 +08:00
|
|
|
|
2021-03-27 19:45:01 +08:00
|
|
|
Install pnpm package manager.
|
2020-05-08 15:44:30 +08:00
|
|
|
|
|
|
|
## Inputs
|
|
|
|
|
|
|
|
### `version`
|
|
|
|
|
2021-03-27 19:45:01 +08:00
|
|
|
**Required** Version of pnpm to install.
|
2020-05-08 15:44:30 +08:00
|
|
|
|
|
|
|
### `dest`
|
|
|
|
|
2021-03-27 19:45:01 +08:00
|
|
|
**Optional** Where to store pnpm files.
|
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`
|
|
|
|
|
2021-03-23 13:53:37 +08:00
|
|
|
Location of `pnpm` and `pnpx` command.
|
2020-05-08 15:44:30 +08:00
|
|
|
|
|
|
|
## Usage example
|
|
|
|
|
2021-03-27 19:45:01 +08:00
|
|
|
### Just install pnpm
|
2020-05-10 13:14:27 +08:00
|
|
|
|
|
|
|
```yaml
|
|
|
|
on:
|
|
|
|
- push
|
|
|
|
- pull_request
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
2020-10-19 15:10:51 +08:00
|
|
|
- uses: pnpm/action-setup@v1.2.1
|
2020-05-10 13:14:27 +08:00
|
|
|
with:
|
2021-02-18 09:30:07 +08:00
|
|
|
version: 5.17.2
|
2020-05-10 13:14:27 +08:00
|
|
|
```
|
|
|
|
|
2021-03-27 19:45:01 +08:00
|
|
|
### Install pnpm and a few npm packages
|
2020-05-10 13:14:27 +08:00
|
|
|
|
2020-05-08 15:44:30 +08:00
|
|
|
```yaml
|
|
|
|
on:
|
|
|
|
- push
|
|
|
|
- pull_request
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
|
2020-10-19 15:10:51 +08:00
|
|
|
- uses: pnpm/action-setup@v1.2.1
|
2020-05-08 15:44:30 +08:00
|
|
|
with:
|
2021-02-18 09:30:07 +08:00
|
|
|
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
|
|
|
```
|
|
|
|
|
2021-02-18 09:30:07 +08:00
|
|
|
### Use cache to reduce installation time
|
2021-02-16 05:36:25 +08:00
|
|
|
|
|
|
|
```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
|
|
|
|
```
|
|
|
|
|
2021-02-18 09:30:07 +08:00
|
|
|
**Note:** You don't need to run `pnpm store prune` at the end; post-action has already taken care of that.
|
2021-02-16 05:36:25 +08:00
|
|
|
|
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/)
|