mirror of
https://github.com/pnpm/action-setup.git
synced 2026-07-08 17:43:45 +08:00
Compare commits
11 Commits
refactor-r
...
87e93ca41f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
87e93ca41f | ||
|
|
fc06bc1257 | ||
|
|
b906affcce | ||
|
|
9b5745cdf0 | ||
|
|
29985b169f | ||
|
|
4a8f7ada16 | ||
|
|
b2ad3f504b | ||
|
|
ab72e3e12e | ||
|
|
1e1c8eafbd | ||
|
|
b9e1dbc72f | ||
|
|
61bc82c7df |
12
.github/workflows/test.yaml
vendored
12
.github/workflows/test.yaml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
- windows-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
||||
|
||||
- name: Run the action
|
||||
uses: ./
|
||||
@@ -51,7 +51,7 @@ jobs:
|
||||
- windows-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
||||
|
||||
- name: Run the action
|
||||
uses: ./
|
||||
@@ -74,8 +74,8 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
# macos is excluded from this test because node 12 is no longer available on this platform
|
||||
- ubuntu-latest
|
||||
- macos-latest
|
||||
- windows-latest
|
||||
|
||||
standalone:
|
||||
@@ -83,7 +83,7 @@ jobs:
|
||||
- false
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
||||
|
||||
- name: Run the action
|
||||
uses: ./
|
||||
@@ -92,7 +92,7 @@ jobs:
|
||||
standalone: ${{ matrix.standalone }}
|
||||
|
||||
- name: install Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
# pnpm@7.0.0 is not compatible with Node.js 12
|
||||
node-version: 12.22.12
|
||||
@@ -160,7 +160,7 @@ jobs:
|
||||
- yarn
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
||||
|
||||
- name: Run the action
|
||||
uses: ./
|
||||
|
||||
@@ -37,6 +37,6 @@ outputs:
|
||||
bin_dest:
|
||||
description: Location of `pnpm` and `pnpx` command
|
||||
runs:
|
||||
using: node20
|
||||
using: node24
|
||||
main: dist/index.js
|
||||
post: dist/index.js
|
||||
|
||||
2
dist/index.js
vendored
2
dist/index.js
vendored
File diff suppressed because one or more lines are too long
@@ -12,7 +12,7 @@
|
||||
"@actions/exec": "^1.1.1",
|
||||
"@actions/glob": "^0.5.0",
|
||||
"@types/expand-tilde": "^2.0.2",
|
||||
"@types/node": "^20.11.5",
|
||||
"@types/node": "^22.0.0",
|
||||
"expand-tilde": "^2.0.2",
|
||||
"yaml": "^2.3.4",
|
||||
"zod": "^3.22.4"
|
||||
|
||||
18
pnpm-lock.yaml
generated
18
pnpm-lock.yaml
generated
@@ -24,8 +24,8 @@ importers:
|
||||
specifier: ^2.0.2
|
||||
version: 2.0.2
|
||||
'@types/node':
|
||||
specifier: ^20.11.5
|
||||
version: 20.17.17
|
||||
specifier: ^22.0.0
|
||||
version: 22.19.11
|
||||
expand-tilde:
|
||||
specifier: ^2.0.2
|
||||
version: 2.0.2
|
||||
@@ -137,8 +137,8 @@ packages:
|
||||
'@types/expand-tilde@2.0.2':
|
||||
resolution: {integrity: sha512-wlsMYiapmIR4Eq/Z0qysN8xaDMjSkO6AIDNFx9oxgWGeKVA1jU+NzwPRZErBNP5z6/dx6QNkNpKglBGPO9OkTA==}
|
||||
|
||||
'@types/node@20.17.17':
|
||||
resolution: {integrity: sha512-/WndGO4kIfMicEQLTi/mDANUu/iVUhT7KboZPdEqqHQ4aTS+3qT3U5gIqWDFV+XouorjfgGqvKILJeHhuQgFYg==}
|
||||
'@types/node@22.19.11':
|
||||
resolution: {integrity: sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w==}
|
||||
|
||||
'@typespec/ts-http-runtime@0.3.0':
|
||||
resolution: {integrity: sha512-sOx1PKSuFwnIl7z4RN0Ls7N9AQawmR9r66eI5rFCzLDIs8HTIYrIpH9QjYWoX0lkgGrkLxXhi4QnK7MizPRrIg==}
|
||||
@@ -335,8 +335,8 @@ packages:
|
||||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
|
||||
undici-types@6.19.8:
|
||||
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
|
||||
undici-types@6.21.0:
|
||||
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
|
||||
|
||||
undici@5.29.0:
|
||||
resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==}
|
||||
@@ -539,9 +539,9 @@ snapshots:
|
||||
|
||||
'@types/expand-tilde@2.0.2': {}
|
||||
|
||||
'@types/node@20.17.17':
|
||||
'@types/node@22.19.11':
|
||||
dependencies:
|
||||
undici-types: 6.19.8
|
||||
undici-types: 6.21.0
|
||||
|
||||
'@typespec/ts-http-runtime@0.3.0':
|
||||
dependencies:
|
||||
@@ -717,7 +717,7 @@ snapshots:
|
||||
|
||||
typescript@5.7.3: {}
|
||||
|
||||
undici-types@6.19.8: {}
|
||||
undici-types@6.21.0: {}
|
||||
|
||||
undici@5.29.0:
|
||||
dependencies:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { getInput, error } from '@actions/core'
|
||||
import * as yaml from 'yaml'
|
||||
import { parse as parseYaml } from 'yaml'
|
||||
import { z, ZodError } from 'zod'
|
||||
|
||||
const RunInstallSchema = z.object({
|
||||
@@ -20,7 +20,7 @@ export type RunInstall = z.infer<typeof RunInstallSchema>
|
||||
|
||||
export function parseRunInstall(inputName: string): RunInstall[] {
|
||||
const input = getInput(inputName, { required: true })
|
||||
const parsedInput: unknown = yaml.parse(input)
|
||||
const parsedInput: unknown = parseYaml(input)
|
||||
|
||||
try {
|
||||
const result: RunInstallInput = RunInstallInputSchema.parse(parsedInput)
|
||||
|
||||
@@ -1,16 +1,27 @@
|
||||
import { setFailed, startGroup, endGroup } from '@actions/core'
|
||||
import { Inputs } from '../inputs'
|
||||
import runSelfInstaller from './run'
|
||||
import { setFailed, startGroup, endGroup } from "@actions/core";
|
||||
import { Inputs } from "../inputs";
|
||||
import runSelfInstaller from "./run";
|
||||
import { exec } from "child_process";
|
||||
import { promisify } from "util";
|
||||
|
||||
export { runSelfInstaller }
|
||||
export { runSelfInstaller };
|
||||
const execAsync = promisify(exec);
|
||||
|
||||
export async function install(inputs: Inputs) {
|
||||
startGroup('Running self-installer...')
|
||||
const status = await runSelfInstaller(inputs)
|
||||
endGroup()
|
||||
try {
|
||||
await execAsync("pnpm --version");
|
||||
return;
|
||||
} catch {}
|
||||
|
||||
startGroup("Running self-installer...");
|
||||
const status = await runSelfInstaller(inputs);
|
||||
endGroup();
|
||||
|
||||
if (status) {
|
||||
return setFailed(`Something went wrong, self-installer exits with code ${status}`)
|
||||
return setFailed(
|
||||
`Something went wrong, self-installer exits with code ${status}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default install
|
||||
export default install;
|
||||
|
||||
@@ -6,7 +6,7 @@ import path from 'path'
|
||||
import { execPath } from 'process'
|
||||
import util from 'util'
|
||||
import { Inputs } from '../inputs'
|
||||
import YAML from 'yaml'
|
||||
import { parse as parseYaml } from 'yaml'
|
||||
|
||||
export async function runSelfInstaller(inputs: Inputs): Promise<number> {
|
||||
const { version, dest, packageJsonFile, standalone } = inputs
|
||||
@@ -63,7 +63,7 @@ async function readTarget(opts: {
|
||||
try {
|
||||
const content = readFileSync(path.join(GITHUB_WORKSPACE, packageJsonFile), 'utf8');
|
||||
({ packageManager } = packageJsonFile.endsWith(".yaml")
|
||||
? YAML.parse(content, { merge: true })
|
||||
? parseYaml(content, { merge: true })
|
||||
: JSON.parse(content)
|
||||
)
|
||||
} catch (error: unknown) {
|
||||
|
||||
Reference in New Issue
Block a user