mirror of
https://github.com/pnpm/action-setup.git
synced 2026-08-10 07:05:40 +08:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0977fd9972 | |||
| 48261aca05 | |||
| 75677f717d | |||
| 769ae71fb3 | |||
| 6fed91f804 | |||
| 0ebf47130e |
@@ -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
+91
-91
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,18 +5,18 @@
|
|||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pnpm/exe": "11.1.1"
|
"@pnpm/exe": "11.19.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/exe": {
|
"node_modules/@pnpm/exe": {
|
||||||
"version": "11.1.1",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/exe/-/exe-11.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/exe/-/exe-11.19.0.tgz",
|
||||||
"integrity": "sha512-5mQnDW1NCBRRWA+cnGhQO+tIrfSfWm3/IyGxU88LnT+tzNW5UrwwKfjsnnYJToyAjIfdfEJtJKUxCvP+mhA+nQ==",
|
"integrity": "sha512-P1mw8BZaNkEpttlyzKsxTj7PVs94bMB4cQ8pJhgbrCTSBP7xCzKS3VlOwIInS7aS5by6KAbfO5Vs9yK/ekugrg==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@reflink/reflink": "0.1.19",
|
"@reflink/reflink": "0.1.19",
|
||||||
"detect-libc": "^2.0.3"
|
"detect-libc": "^2.1.2"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"pn": "pn",
|
"pn": "pn",
|
||||||
@@ -28,19 +28,19 @@
|
|||||||
"url": "https://opencollective.com/pnpm"
|
"url": "https://opencollective.com/pnpm"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@pnpm/linux-arm64": "11.1.1",
|
"@pnpm/linux-arm64": "11.19.0",
|
||||||
"@pnpm/linux-x64": "11.1.1",
|
"@pnpm/linux-x64": "11.19.0",
|
||||||
"@pnpm/linuxstatic-arm64": "11.1.1",
|
"@pnpm/linuxstatic-arm64": "11.19.0",
|
||||||
"@pnpm/linuxstatic-x64": "11.1.1",
|
"@pnpm/linuxstatic-x64": "11.19.0",
|
||||||
"@pnpm/macos-arm64": "11.1.1",
|
"@pnpm/macos-arm64": "11.19.0",
|
||||||
"@pnpm/win-arm64": "11.1.1",
|
"@pnpm/win-arm64": "11.19.0",
|
||||||
"@pnpm/win-x64": "11.1.1"
|
"@pnpm/win-x64": "11.19.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/linux-arm64": {
|
"node_modules/@pnpm/linux-arm64": {
|
||||||
"version": "11.1.1",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/linux-arm64/-/linux-arm64-11.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/linux-arm64/-/linux-arm64-11.19.0.tgz",
|
||||||
"integrity": "sha512-u9hs51XV0/gU5LLfNLoQsozGKIxNjxsh/0xPr+8Hny0M38psa4lBtwFvarL2bLToPIrtueQYi65LdlzRxITRyg==",
|
"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.1.1",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/linux-x64/-/linux-x64-11.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/linux-x64/-/linux-x64-11.19.0.tgz",
|
||||||
"integrity": "sha512-yQO9i57oyJmIG22BjV7sqLUT2syKQohiku8yNZRgp7M6wsVkikpVLLVSpBifQnrI/P/roueKnWSUEESH1aPaoA==",
|
"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.1.1",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/linuxstatic-arm64/-/linuxstatic-arm64-11.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/linuxstatic-arm64/-/linuxstatic-arm64-11.19.0.tgz",
|
||||||
"integrity": "sha512-FUZB8L9Z8L5m88G0RTx5AsHFr5yUQPW+28zQdTNUWxiLwj11FW/fOLodYdcNYHdNJFepsZyqt3aRnpiqIdZb2g==",
|
"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.1.1",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/linuxstatic-x64/-/linuxstatic-x64-11.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/linuxstatic-x64/-/linuxstatic-x64-11.19.0.tgz",
|
||||||
"integrity": "sha512-I/z56hfa1zM5F/Unup/1NrgsA+dcptsKQ2TjJLFz3wHKDx0RLrfF7DB0Rkpnr5IoAZ33v0GFZjlGhkOtc9VFGw==",
|
"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.1.1",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/macos-arm64/-/macos-arm64-11.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/macos-arm64/-/macos-arm64-11.19.0.tgz",
|
||||||
"integrity": "sha512-YQu6fC27F4jTIpXhF+4PdzOV7uSnVVG9KUxj5W+AFj0XFlUvBw+I1NsoPCY6uV1nccxWpIAZOTZtSj8+hWPb8w==",
|
"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.1.1",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/win-arm64/-/win-arm64-11.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/win-arm64/-/win-arm64-11.19.0.tgz",
|
||||||
"integrity": "sha512-2HvZut3IcKPxzIfOjBJ4677PaLIh57mWccL86O+q71QhO5emnQvht0CE19IoEyUIOEe1WjlN+Su/dD5k6CuGyg==",
|
"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.1.1",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/win-x64/-/win-x64-11.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/win-x64/-/win-x64-11.19.0.tgz",
|
||||||
"integrity": "sha512-QXBIBErgPhGLovOVzTRIpHsejFKebyqlcF3fea/TfH87gkhN5yWH0WuTPRBoOWvpk6aNhjDW4RPUMx8RaPqxjw==",
|
"integrity": "sha512-l26XeTxoGxfU+mVcZ5jFdP9hNe5yrOlLPSkAlwwpXPI1iyyU4JUSxm6Jdyxu1UAU1FerD/BvLK2vrlR6d9ogag==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -5,13 +5,13 @@
|
|||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"pnpm": "11.1.1"
|
"pnpm": "11.19.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/pnpm": {
|
"node_modules/pnpm": {
|
||||||
"version": "11.1.1",
|
"version": "11.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/pnpm/-/pnpm-11.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/pnpm/-/pnpm-11.19.0.tgz",
|
||||||
"integrity": "sha512-0f319zxhe2T6GlaoHDyN/g6WbjOmAQqiVrUXrne+Idk+Ba/8DeGoOw5PKdVp9otEaujwaM1yR8C7PfD7TXvfmg==",
|
"integrity": "sha512-eIHz7VkNRyxKlV4riLISF5ERYGbcyIy8o4SeybYPG7qm0syyIfqR2k4cZb7yvL43k2Wup6xTnHv4be3DobItzg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bin": {
|
"bin": {
|
||||||
"pn": "bin/pnpm.mjs",
|
"pn": "bin/pnpm.mjs",
|
||||||
|
|||||||
Reference in New Issue
Block a user