mirror of
https://github.com/pnpm/action-setup.git
synced 2026-08-09 21:38:52 +08:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0977fd9972 | |||
| 48261aca05 | |||
| 75677f717d | |||
| 769ae71fb3 | |||
| 6fed91f804 |
@@ -19,7 +19,7 @@ jobs:
|
|||||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||||
with:
|
with:
|
||||||
run_install: true
|
run_install: true
|
||||||
version: 9
|
version: 11
|
||||||
|
|
||||||
- name: Update dist/index.js
|
- name: Update dist/index.js
|
||||||
run: pnpm run build
|
run: pnpm run build
|
||||||
|
|||||||
@@ -1,18 +1,68 @@
|
|||||||
> ## :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
|
# Setup pnpm
|
||||||
|
|
||||||
Install pnpm package manager.
|
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
|
## Inputs
|
||||||
|
|
||||||
### `version`
|
### `version`
|
||||||
|
|
||||||
Version of pnpm to install.
|
Version of pnpm to install.
|
||||||
|
|
||||||
**Optional** when there is a [`packageManager` field in the `package.json`](https://nodejs.org/api/corepack.html).
|
**Optional** when there is a [`packageManager` or `devEngines.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 `10.9.8`), or a version range (such as `10`, `10.x.x`, `10.9.x`, `^10.9.8`, `*`, etc.), or `latest`.
|
otherwise, this field is **required** It supports npm versioning scheme, it could be an exact version (such as `10.9.8`), or a version range (such as `10`, `10.x.x`, `10.9.x`, `^10.9.8`, `*`, etc.), or `latest`.
|
||||||
|
|
||||||
@@ -52,7 +102,7 @@ If `run_install` is a YAML string representation of either an object or an array
|
|||||||
|
|
||||||
### `package_json_file`
|
### `package_json_file`
|
||||||
|
|
||||||
**Optional** (_type:_ `string`, _default:_ `package.json`) File path to the `package.json`/[`package.yaml`](https://github.com/pnpm/pnpm/pull/1799) to read "packageManager" configuration.
|
**Optional** (_type:_ `string`, _default:_ `package.json`) File path to the `package.json`/[`package.yaml`](https://github.com/pnpm/pnpm/pull/1799) to read `packageManager` or `devEngines.packageManager` configuration.
|
||||||
|
|
||||||
### `standalone`
|
### `standalone`
|
||||||
|
|
||||||
@@ -74,7 +124,7 @@ Location of `pnpm` and `pnpx` command.
|
|||||||
|
|
||||||
### Install only pnpm without `packageManager`
|
### 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`.
|
This works when the repo either doesn't have a `package.json` or has a `package.json` but it doesn't specify `packageManager` or `devEngines.packageManager`.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
on:
|
on:
|
||||||
@@ -93,7 +143,7 @@ jobs:
|
|||||||
|
|
||||||
### Install only pnpm with `packageManager`
|
### 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).
|
Omit `version` input to use the version in the [`packageManager` or `devEngines.packageManager` field in the `package.json`](https://nodejs.org/api/corepack.html).
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
on:
|
on:
|
||||||
@@ -187,7 +237,7 @@ jobs:
|
|||||||
|
|
||||||
## Notes
|
## 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
|
## License
|
||||||
|
|
||||||
|
|||||||
Vendored
+92
-92
File diff suppressed because one or more lines are too long
@@ -18,9 +18,18 @@ export async function runRestoreCache(inputs: Inputs) {
|
|||||||
debug(`Primary key is ${primaryKey}`)
|
debug(`Primary key is ${primaryKey}`)
|
||||||
saveState('cache_primary_key', primaryKey)
|
saveState('cache_primary_key', primaryKey)
|
||||||
|
|
||||||
let cacheKey = await restoreCache([cachePath], primaryKey)
|
// We don't need to download everything again if only one dependency changed
|
||||||
|
// We can still re-use previous store to cache the rest of the unchanged dependencies
|
||||||
|
const restoreKeys = [
|
||||||
|
`pnpm-cache-${process.env.RUNNER_OS}-${os.arch()}-`
|
||||||
|
];
|
||||||
|
|
||||||
setOutput('cache-hit', Boolean(cacheKey))
|
let cacheKey = await restoreCache([cachePath], primaryKey, restoreKeys)
|
||||||
|
|
||||||
|
// A restore-key (prefix) match still restores an older store, but "cache-hit"
|
||||||
|
// must only report an exact primary-key match, so dependency installation
|
||||||
|
// is not skipped when the lockfile has changed.
|
||||||
|
setOutput('cache-hit', cacheKey === primaryKey)
|
||||||
|
|
||||||
if (!cacheKey) {
|
if (!cacheKey) {
|
||||||
info(`Cache is not found`)
|
info(`Cache is not found`)
|
||||||
|
|||||||
@@ -5,13 +5,13 @@
|
|||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pnpm/exe": "11.7.0"
|
"@pnpm/exe": "11.19.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/exe": {
|
"node_modules/@pnpm/exe": {
|
||||||
"version": "11.7.0",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/exe/-/exe-11.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/exe/-/exe-11.19.0.tgz",
|
||||||
"integrity": "sha512-3CujpSSp2PIDE0pwu7mWSdjhdDqaZa7OppVooECWWaNEoA/z66s9FZts1MhDO+2yq1XER4gBHh84DVbFN/r1rA==",
|
"integrity": "sha512-P1mw8BZaNkEpttlyzKsxTj7PVs94bMB4cQ8pJhgbrCTSBP7xCzKS3VlOwIInS7aS5by6KAbfO5Vs9yK/ekugrg==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -28,19 +28,19 @@
|
|||||||
"url": "https://opencollective.com/pnpm"
|
"url": "https://opencollective.com/pnpm"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@pnpm/linux-arm64": "11.7.0",
|
"@pnpm/linux-arm64": "11.19.0",
|
||||||
"@pnpm/linux-x64": "11.7.0",
|
"@pnpm/linux-x64": "11.19.0",
|
||||||
"@pnpm/linuxstatic-arm64": "11.7.0",
|
"@pnpm/linuxstatic-arm64": "11.19.0",
|
||||||
"@pnpm/linuxstatic-x64": "11.7.0",
|
"@pnpm/linuxstatic-x64": "11.19.0",
|
||||||
"@pnpm/macos-arm64": "11.7.0",
|
"@pnpm/macos-arm64": "11.19.0",
|
||||||
"@pnpm/win-arm64": "11.7.0",
|
"@pnpm/win-arm64": "11.19.0",
|
||||||
"@pnpm/win-x64": "11.7.0"
|
"@pnpm/win-x64": "11.19.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/linux-arm64": {
|
"node_modules/@pnpm/linux-arm64": {
|
||||||
"version": "11.7.0",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/linux-arm64/-/linux-arm64-11.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/linux-arm64/-/linux-arm64-11.19.0.tgz",
|
||||||
"integrity": "sha512-ANTX2SlMO+d2y/4bYQhHCwHPX7gSSADJ5+pMUIiDFzIsybnFFaJdZboaFfq9NOxCbETcnDxqZ95Rz3+NHx1JIw==",
|
"integrity": "sha512-c5AJqnsj0BMqMCOtctOzsCqyfY+afFe1kdM9F2FrNhYwtnQRMHoJy+51qfee4yuTPOVRyk3Yh1dwvyAadiznvA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -54,9 +54,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/linux-x64": {
|
"node_modules/@pnpm/linux-x64": {
|
||||||
"version": "11.7.0",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/linux-x64/-/linux-x64-11.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/linux-x64/-/linux-x64-11.19.0.tgz",
|
||||||
"integrity": "sha512-fr75tqixXoS8cnA81HQIomjOGEPnsOsd3xCDL5pMNY5raOXbKurtgRV+RjATvjxlJxSLIVFKegABlxAiB7q72A==",
|
"integrity": "sha512-KOKpA9o75SvmRQgWO+EqEpQzJg1b9uHk5y61PAx90sSpdYtKDPua2eBXBglzv8YK1xM3DsYXFEf7Scs+3HeDsA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -70,9 +70,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/linuxstatic-arm64": {
|
"node_modules/@pnpm/linuxstatic-arm64": {
|
||||||
"version": "11.7.0",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/linuxstatic-arm64/-/linuxstatic-arm64-11.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/linuxstatic-arm64/-/linuxstatic-arm64-11.19.0.tgz",
|
||||||
"integrity": "sha512-Q++pgzvXkGeqnVRl26/uqmpMGdttQus0rGyL3XIfYGLCi8ZfajYUaCKdZID2MH7+CNOuugWDdFDup3r7BR7Rfg==",
|
"integrity": "sha512-Ci9WxgCInZc3F43R6BfaHevi+dYqaI5CLi6421egFsK649eHvYPytvu+zABhTNlYGNJbD8j9w+AUYInz/TPsyQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -89,9 +89,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/linuxstatic-x64": {
|
"node_modules/@pnpm/linuxstatic-x64": {
|
||||||
"version": "11.7.0",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/linuxstatic-x64/-/linuxstatic-x64-11.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/linuxstatic-x64/-/linuxstatic-x64-11.19.0.tgz",
|
||||||
"integrity": "sha512-z1+exW6ocU/rmOvJnmU3FUBJYaryCUqFoaXN6KZW5BqTj7BPJb7HJcAyXRlirNZMJlEiUY5rXbfStGPQJhGsVA==",
|
"integrity": "sha512-GNMk96vNJ4uEWigekarjHofXNDFsTYRL0Mw2YlDkv/W+u0cn/UAVPHfd5aAfsf6Arel2ZQfxPUTXlpunFujWnA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -108,9 +108,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/macos-arm64": {
|
"node_modules/@pnpm/macos-arm64": {
|
||||||
"version": "11.7.0",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/macos-arm64/-/macos-arm64-11.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/macos-arm64/-/macos-arm64-11.19.0.tgz",
|
||||||
"integrity": "sha512-gD34/k3JT5oab4BYaqrUor3e4VdwXvkfLNlEI+lvDtX1MHT+2Nauc9p9NsQnpn1zE8blQEflzbF8wAUQ6Dmvkw==",
|
"integrity": "sha512-I3Ee/GQlPxEOeBSzqxBNwcTHxVebjMiN2xLdTBS6OK2TAPzbWMIExjU5brxhr8rAk73p7mbv/a/2tFC/3gl6FA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -124,9 +124,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/win-arm64": {
|
"node_modules/@pnpm/win-arm64": {
|
||||||
"version": "11.7.0",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/win-arm64/-/win-arm64-11.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/win-arm64/-/win-arm64-11.19.0.tgz",
|
||||||
"integrity": "sha512-hRTcDmm2j7KoRwbqNo0rUAu9A1kVJN98Eob7H09U0uPJbEMax85JGOmERkT3Lf6HjVJuFNBvfaJ3OTI3HmlVGg==",
|
"integrity": "sha512-rOiWuJ9wjaFY9ZDVPGVjpvjIQHZNB72rioxvuyzDKJ7dqKQ97VF27a4rmOtjhMB5u83cdDGEJ+OY+H1+TP+frw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -140,9 +140,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/win-x64": {
|
"node_modules/@pnpm/win-x64": {
|
||||||
"version": "11.7.0",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/win-x64/-/win-x64-11.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/win-x64/-/win-x64-11.19.0.tgz",
|
||||||
"integrity": "sha512-r/1NuKY7Z+6ZXVIzVrUEMj6TTEBdR63geV4Rlm8HKEhgQTdxyIsJoqV3FJGqoyzbRaScObqAwRfMaK9dskPddQ==",
|
"integrity": "sha512-l26XeTxoGxfU+mVcZ5jFdP9hNe5yrOlLPSkAlwwpXPI1iyyU4JUSxm6Jdyxu1UAU1FerD/BvLK2vrlR6d9ogag==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -5,13 +5,13 @@
|
|||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"pnpm": "11.7.0"
|
"pnpm": "11.19.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/pnpm": {
|
"node_modules/pnpm": {
|
||||||
"version": "11.7.0",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/pnpm/-/pnpm-11.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/pnpm/-/pnpm-11.19.0.tgz",
|
||||||
"integrity": "sha512-GcyFLBIMcSV2DyRD7mvgyltA+fUFmN4aCaHxd1A+AQ5Xwjx3ZG4B52HeWb+HT7IqM5jDOrlpH8E+uUa28PTWIA==",
|
"integrity": "sha512-eIHz7VkNRyxKlV4riLISF5ERYGbcyIy8o4SeybYPG7qm0syyIfqR2k4cZb7yvL43k2Wup6xTnHv4be3DobItzg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bin": {
|
"bin": {
|
||||||
"pn": "bin/pnpm.mjs",
|
"pn": "bin/pnpm.mjs",
|
||||||
|
|||||||
Reference in New Issue
Block a user