mirror of
https://github.com/pnpm/action-setup.git
synced 2026-03-07 08:21:45 +08:00
Compare commits
4 Commits
bd24b65d67
...
b9cbf5dd9e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b9cbf5dd9e | ||
|
|
9b5745cdf0 | ||
|
|
d5bd7e8c9a | ||
|
|
44def7846a |
@ -37,6 +37,6 @@ outputs:
|
|||||||
bin_dest:
|
bin_dest:
|
||||||
description: Location of `pnpm` and `pnpx` command
|
description: Location of `pnpm` and `pnpx` command
|
||||||
runs:
|
runs:
|
||||||
using: node20
|
using: node24
|
||||||
main: dist/index.js
|
main: dist/index.js
|
||||||
post: dist/index.js
|
post: dist/index.js
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
"@actions/exec": "^1.1.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"@actions/glob": "^0.5.0",
|
"@actions/glob": "^0.5.0",
|
||||||
"@types/expand-tilde": "^2.0.2",
|
"@types/expand-tilde": "^2.0.2",
|
||||||
"@types/node": "^20.11.5",
|
"@types/node": "^22.0.0",
|
||||||
"expand-tilde": "^2.0.2",
|
"expand-tilde": "^2.0.2",
|
||||||
"yaml": "^2.3.4",
|
"yaml": "^2.3.4",
|
||||||
"zod": "^3.22.4"
|
"zod": "^3.22.4"
|
||||||
|
|||||||
@ -24,8 +24,8 @@ importers:
|
|||||||
specifier: ^2.0.2
|
specifier: ^2.0.2
|
||||||
version: 2.0.2
|
version: 2.0.2
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^20.11.5
|
specifier: ^22.0.0
|
||||||
version: 20.17.17
|
version: 22.19.11
|
||||||
expand-tilde:
|
expand-tilde:
|
||||||
specifier: ^2.0.2
|
specifier: ^2.0.2
|
||||||
version: 2.0.2
|
version: 2.0.2
|
||||||
@ -137,8 +137,8 @@ packages:
|
|||||||
'@types/expand-tilde@2.0.2':
|
'@types/expand-tilde@2.0.2':
|
||||||
resolution: {integrity: sha512-wlsMYiapmIR4Eq/Z0qysN8xaDMjSkO6AIDNFx9oxgWGeKVA1jU+NzwPRZErBNP5z6/dx6QNkNpKglBGPO9OkTA==}
|
resolution: {integrity: sha512-wlsMYiapmIR4Eq/Z0qysN8xaDMjSkO6AIDNFx9oxgWGeKVA1jU+NzwPRZErBNP5z6/dx6QNkNpKglBGPO9OkTA==}
|
||||||
|
|
||||||
'@types/node@20.17.17':
|
'@types/node@22.19.11':
|
||||||
resolution: {integrity: sha512-/WndGO4kIfMicEQLTi/mDANUu/iVUhT7KboZPdEqqHQ4aTS+3qT3U5gIqWDFV+XouorjfgGqvKILJeHhuQgFYg==}
|
resolution: {integrity: sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w==}
|
||||||
|
|
||||||
'@typespec/ts-http-runtime@0.3.0':
|
'@typespec/ts-http-runtime@0.3.0':
|
||||||
resolution: {integrity: sha512-sOx1PKSuFwnIl7z4RN0Ls7N9AQawmR9r66eI5rFCzLDIs8HTIYrIpH9QjYWoX0lkgGrkLxXhi4QnK7MizPRrIg==}
|
resolution: {integrity: sha512-sOx1PKSuFwnIl7z4RN0Ls7N9AQawmR9r66eI5rFCzLDIs8HTIYrIpH9QjYWoX0lkgGrkLxXhi4QnK7MizPRrIg==}
|
||||||
@ -335,8 +335,8 @@ packages:
|
|||||||
engines: {node: '>=14.17'}
|
engines: {node: '>=14.17'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
undici-types@6.19.8:
|
undici-types@6.21.0:
|
||||||
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
|
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
|
||||||
|
|
||||||
undici@5.29.0:
|
undici@5.29.0:
|
||||||
resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==}
|
resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==}
|
||||||
@ -539,9 +539,9 @@ snapshots:
|
|||||||
|
|
||||||
'@types/expand-tilde@2.0.2': {}
|
'@types/expand-tilde@2.0.2': {}
|
||||||
|
|
||||||
'@types/node@20.17.17':
|
'@types/node@22.19.11':
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types: 6.19.8
|
undici-types: 6.21.0
|
||||||
|
|
||||||
'@typespec/ts-http-runtime@0.3.0':
|
'@typespec/ts-http-runtime@0.3.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -717,7 +717,7 @@ snapshots:
|
|||||||
|
|
||||||
typescript@5.7.3: {}
|
typescript@5.7.3: {}
|
||||||
|
|
||||||
undici-types@6.19.8: {}
|
undici-types@6.21.0: {}
|
||||||
|
|
||||||
undici@5.29.0:
|
undici@5.29.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import { readFileSync } from 'fs'
|
|||||||
import path from 'path'
|
import path from 'path'
|
||||||
import { execPath } from 'process'
|
import { execPath } from 'process'
|
||||||
import util from 'util'
|
import util from 'util'
|
||||||
|
import * as yaml from 'yaml'
|
||||||
import { Inputs } from '../inputs'
|
import { Inputs } from '../inputs'
|
||||||
import { parse as parseYaml } from 'yaml'
|
import { parse as parseYaml } from 'yaml'
|
||||||
|
|
||||||
@ -95,10 +96,18 @@ Otherwise, please specify the pnpm version in the action configuration.`)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (typeof packageManager !== 'string') {
|
if (typeof packageManager !== 'string') {
|
||||||
throw new Error(`No pnpm version is specified.
|
if (GITHUB_WORKSPACE) {
|
||||||
|
try {
|
||||||
|
const { lockfileVersion } = yaml.parse(readFileSync(path.join(GITHUB_WORKSPACE, 'pnpm-lock.yaml'), 'utf8'))
|
||||||
|
const version = getPnpmVersionFromLockfile(lockfileVersion);
|
||||||
|
return `${ standalone ? '@pnpm/exe' : 'pnpm' }@${version}`
|
||||||
|
} catch (error: unknown) {
|
||||||
|
throw new Error(`No pnpm version is specified.
|
||||||
Please specify it by one of the following ways:
|
Please specify it by one of the following ways:
|
||||||
- in the GitHub Action config with the key "version"
|
- in the GitHub Action config with the key "version"
|
||||||
- in the package.json with the key "packageManager"`)
|
- in the package.json with the key "packageManager"`)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!packageManager.startsWith('pnpm@')) {
|
if (!packageManager.startsWith('pnpm@')) {
|
||||||
@ -112,4 +121,21 @@ Please specify it by one of the following ways:
|
|||||||
return packageManager
|
return packageManager
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getPnpmVersionFromLockfile(
|
||||||
|
lockfileVersion: string | undefined
|
||||||
|
): string | undefined {
|
||||||
|
switch (true) {
|
||||||
|
case lockfileVersion === '5.3':
|
||||||
|
return 'latest-6';
|
||||||
|
case lockfileVersion === '5.4':
|
||||||
|
return 'latest-7';
|
||||||
|
case lockfileVersion === '6.0' || lockfileVersion === '6.1':
|
||||||
|
return 'latest-8';
|
||||||
|
case lockfileVersion === '7.0' || lockfileVersion === '9.0':
|
||||||
|
return 'latest-9';
|
||||||
|
default:
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default runSelfInstaller
|
export default runSelfInstaller
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user