mirror of
https://github.com/pnpm/action-setup
synced 2026-10-21 15:20:41 +02:00
The pnpm home directory should be added to PATH and PNPM_HOME
This change is needed to make the action compatible with pnpm v7. Related breaking change in pnpm: pnpm/pnpm#4280
This commit is contained in:
4 files changed
+497
-512
No files matched your search
Vendored
+1
-1
@@ -1 +1 @@
|
||||
module.exports=(()=>{var __webpack_modules__={2492:e=>{"use strict";e.exports=JSON.parse('{"anyOf":[{"$ref":"#/definitions/RunInstall"},{"type":"array","items":{"$ref":"#/definitions/RunInstall"}},{"type":["null","boolean"]}],"definitions":{"RunInstall":{"type":"object","properties":{"recursive":{"type":"boolean"},"cwd":{"type":"string"},"args":{"type":"array","items":{"type":"string"}}}}},"$schema":"http://json-schema.org/draft-07/schema#"}')},6011:function(e,n,r){"use strict";var f=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:true});const s=r(6832);const l=f(r(8527));const c=f(r(3406));const i=f(r(9282));const v=f(r(6866));const p=f(r(2726));async function main(){const e=l.default();const n=s.getState("is_post");if(n==="true")return p.default(e);s.saveState("is_post","true");await i.default(e);console.log("Installation Completed!");c.default(e);v.default(e)}main().catch(e=>{console.error(e);s.setFailed(e)})},8527:function(e,n,r){"use strict";var f=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:true});n.getInputs=void 0;const s=r(6832);const l=f(r(4010));const c=r(986);const i={required:true};const v=e=>l.default(s.getInput(e,i));const p=()=>({version:s.getInput("version",i),dest:v("dest"),runInstall:c.parseRunInstall("run_install")});n.getInputs=p;n.default=n.getInputs},986:function(e,n,r){"use strict";var f=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:true});n.parseRunInstall=void 0;const s=f(r(1765));const l=r(9520);const c=f(r(8469));const i=r(6832);const v=f(r(2492));const p={required:true};function parseRunInstall(e){const n=l.load(i.getInput(e,p));const r=new c.default({allErrors:true});const f=r.compile(v.default);if(!f(n)){for(const e of f.errors){i.error(`with.run_install${e.dataPath}: ${e.message}`)}return s.default.exit(1)}if(!n)return[];if(n===true)return[{recursive:true}];if(Array.isArray(n))return n;return[n]}n.parseRunInstall=parseRunInstall},9282:function(e,n,r){"use strict";var f=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:true});n.install=n.runSelfInstaller=void 0;const s=r(6832);const l=f(r(7388));n.runSelfInstaller=l.default;async function install(e){s.startGroup("Running self-installer...");const n=await l.default(e);s.endGroup();if(n){return s.setFailed(`Something does wrong, self-installer exits with code ${n}`)}}n.install=install;n.default=install},7388:function(e,n,r){"use strict";var f=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:true});n.runSelfInstaller=void 0;const s=r(3129);const l=r(1765);const c=r(5622);const i=r(4240);const v=f(r(2192));async function runSelfInstaller(e){const{version:n,dest:r}=e;const f=n?`pnpm@${n}`:"pnpm";const p=c.join(r,"package.json");await i.remove(r);await i.ensureFile(p);await i.writeFile(p,JSON.stringify({private:true}));const d=s.spawn(l.execPath,["-","install",f,"--no-lockfile"],{cwd:r,stdio:["pipe","inherit","inherit"]});const a=await v.default("https://pnpm.js.org/pnpm.js");a.body.pipe(d.stdin);return new Promise((e,n)=>{d.on("error",n);d.on("close",e)})}n.runSelfInstaller=runSelfInstaller;n.default=runSelfInstaller},3406:(e,n,r)=>{"use strict";Object.defineProperty(n,"__esModule",{value:true});n.setOutputs=void 0;const f=r(6832);const s=r(1630);function setOutputs(e){const n=s.getBinDest(e);f.addPath(n);f.setOutput("dest",e.dest);f.setOutput("bin_dest",n)}n.setOutputs=setOutputs;n.default=setOutputs},6866:(e,n,r)=>{"use strict";Object.defineProperty(n,"__esModule",{value:true});n.runPnpmInstall=void 0;const f=r(3129);const s=r(6832);const l=r(1630);function runPnpmInstall(e){const n=l.patchPnpmEnv(e);for(const r of e.runInstall){const e=["install"];if(r.recursive)e.unshift("recursive");if(r.args)e.push(...r.args);const l=["pnpm",...e].join(" ");s.startGroup(`Running ${l}...`);const{error:c,status:i}=f.spawnSync("pnpm",e,{stdio:"inherit",cwd:r.cwd,shell:true,env:n});s.endGroup();if(c){s.setFailed(c);continue}if(i){s.setFailed(`Command ${l} (cwd: ${r.cwd}) exits with status ${i}`);continue}}}n.runPnpmInstall=runPnpmInstall;n.default=runPnpmInstall},2726:(e,n,r)=>{"use strict";Object.defineProperty(n,"__esModule",{value:true});n.pruneStore=void 0;const f=r(3129);const s=r(6832);const l=r(1630);function pruneStore(e){if(e.runInstall.length===0){console.log("Pruning is unnecessary.");return}s.startGroup("Running pnpm store prune...");const{error:n,status:r}=f.spawnSync("pnpm",["store","prune"],{stdio:"inherit",shell:true,env:l.patchPnpmEnv(e)});s.endGroup();if(n){s.warning(n);return}if(r){s.warning(`command pnpm store prune exits with code ${r}`);return}}n.pruneStore=pruneStore;n.default=pruneStore},1630:function(e,n,r){"use strict";var f=this&&this.__importDefault||fuLine truncated
|
||||
module.exports=(()=>{var __webpack_modules__={2492:e=>{"use strict";e.exports=JSON.parse('{"anyOf":[{"$ref":"#/definitions/RunInstall"},{"type":"array","items":{"$ref":"#/definitions/RunInstall"}},{"type":["null","boolean"]}],"definitions":{"RunInstall":{"type":"object","properties":{"recursive":{"type":"boolean"},"cwd":{"type":"string"},"args":{"type":"array","items":{"type":"string"}}}}},"$schema":"http://json-schema.org/draft-07/schema#"}')},6152:function(e,p,d){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(p,"__esModule",{value:true});const n=d(6105);const l=a(d(539));const r=a(d(7701));const i=a(d(9875));const s=a(d(4882));const m=a(d(4424));async function main(){const e=(0,l.default)();const p=(0,n.getState)("is_post");if(p==="true")return(0,m.default)(e);(0,n.saveState)("is_post","true");await(0,i.default)(e);console.log("Installation Completed!");(0,r.default)(e);(0,s.default)(e)}main().catch(e=>{console.error(e);(0,n.setFailed)(e)})},539:function(e,p,d){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(p,"__esModule",{value:true});p.getInputs=void 0;const n=d(6105);const l=a(d(9413));const r=d(4019);const i={required:true};const s=e=>(0,l.default)((0,n.getInput)(e,i));const m=()=>({version:(0,n.getInput)("version",i),dest:s("dest"),runInstall:(0,r.parseRunInstall)("run_install")});p.getInputs=m;p.default=p.getInputs},4019:function(e,p,d){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(p,"__esModule",{value:true});p.parseRunInstall=void 0;const n=a(d(1765));const l=d(6070);const r=a(d(6562));const i=d(6105);const s=a(d(2492));const m={required:true};function parseRunInstall(e){const p=(0,l.load)((0,i.getInput)(e,m));const d=new r.default({allErrors:true});const a=d.compile(s.default);if(!a(p)){for(const e of a.errors){(0,i.error)(`with.run_install${e.dataPath}: ${e.message}`)}return n.default.exit(1)}if(!p)return[];if(p===true)return[{recursive:true}];if(Array.isArray(p))return p;return[p]}p.parseRunInstall=parseRunInstall},9875:function(e,p,d){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(p,"__esModule",{value:true});p.install=p.runSelfInstaller=void 0;const n=d(6105);const l=a(d(7529));p.runSelfInstaller=l.default;async function install(e){(0,n.startGroup)("Running self-installer...");const p=await(0,l.default)(e);(0,n.endGroup)();if(p){return(0,n.setFailed)(`Something went wrong, self-installer exits with code ${p}`)}}p.install=install;p.default=install},7529:function(e,p,d){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,p,d,a){if(a===undefined)a=d;Object.defineProperty(e,a,{enumerable:true,get:function(){return p[d]}})}:function(e,p,d,a){if(a===undefined)a=d;e[a]=p[d]});var n=this&&this.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:true,value:p})}:function(e,p){e["default"]=p});var l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var p={};if(e!=null)for(var d in e)if(d!=="default"&&Object.prototype.hasOwnProperty.call(e,d))a(p,e,d);n(p,e);return p};var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(p,"__esModule",{value:true});p.runSelfInstaller=void 0;const i=l(d(6105));const s=d(3129);const m=d(1765);const f=d(5622);const v=d(4982);const c=r(d(6015));async function runSelfInstaller(e){const{version:p,dest:d}=e;const a=p?`pnpm@${p}`:"pnpm";const n=(0,f.join)(d,"package.json");await(0,v.remove)(d);await(0,v.ensureFile)(n);await(0,v.writeFile)(n,JSON.stringify({private:true}));const l=(0,s.spawn)(m.execPath,["-","install",a,"--no-lockfile"],{cwd:d,stdio:["pipe","inherit","inherit"]});const r=await(0,c.default)("https://pnpm.js.org/pnpm.js");r.body.pipe(l.stdin);const o=await new Promise((e,p)=>{l.on("error",p);l.on("close",e)});if(o===0){const e=(0,f.join)(d,"node_modules/.bin");i.addPath(e);i.exportVariable("PNPM_HOME_PATH",e)}return o}p.runSelfInstaller=runSelfInstaller;p.default=runSelfInstaller},7701:(e,p,d)=>{"use strict";Object.defineProperty(p,"__esModule",{value:true});p.setOutputs=void 0;const a=d(6105);const n=d(6656);function setOutputs(e){const p=(0,n.getBinDest)(e);(0,a.addPath)(p);(0,a.setOutput)("dest",e.dest);(0,a.setOutput)("bin_dest",p)}p.setOutputs=setOutputs;p.default=setOutputs},4882:(e,p,d)=>{"use strict";Object.defineProperty(p,"__esModule",{value:true});p.runPnpmInstall=void 0;const a=d(3129);const n=d(6105);const l=d(6656);function runPnpmInstall(e){const p=(0,l.patchPnpmEnv)(e);for(const d of e.runInstall){const e=["install"];if(d.recursive)e.unshift("recursive");if(d.args)e.push(...d.args);const l=["pnpm",...e].join(" ");(0,n.startGroup)(`Running ${l}...`);const{error:r,status:i}=(0,a.spawnSync)("pnpm",e,{stdio:"inherit",cwd:d.cwd,shell:true,eLine truncated
|
||||
+12
-12
@@ -7,21 +7,21 @@
|
||||
"start": "pnpm run build && sh ./run.sh"
|
||||
},
|
||||
"dependencies": {
|
||||
"node-fetch": "^2.6.1",
|
||||
"expand-tilde": "^2.0.2",
|
||||
"js-yaml": "^4.0.0",
|
||||
"ajv": "^6.12.5",
|
||||
"fs-extra": "^9.1.0",
|
||||
"@actions/core": "^1.2.6",
|
||||
"@actions/core": "^1.6.0",
|
||||
"@types/expand-tilde": "^2.0.0",
|
||||
"@types/node-fetch": "^2.5.8",
|
||||
"@types/js-yaml": "^4.0.0",
|
||||
"@types/fs-extra": "^9.0.8",
|
||||
"@types/node": "^14.14.35"
|
||||
"@types/fs-extra": "^9.0.13",
|
||||
"@types/js-yaml": "^4.0.5",
|
||||
"@types/node": "^14.18.10",
|
||||
"@types/node-fetch": "^2.5.12",
|
||||
"ajv": "^6.12.6",
|
||||
"expand-tilde": "^2.0.2",
|
||||
"fs-extra": "^9.1.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"node-fetch": "^2.6.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "^4.2.3",
|
||||
"@ts-schema-autogen/cli": "^0.1.2",
|
||||
"@vercel/ncc": "^0.27.0"
|
||||
"@vercel/ncc": "^0.27.0",
|
||||
"typescript": "^4.5.5"
|
||||
}
|
||||
}
|
||||
Generated
+473
-498
File diff suppressed because it is too large.
Load diff
+11
-1
@@ -1,3 +1,4 @@
|
||||
import * as core from '@actions/core'
|
||||
import { spawn } from 'child_process'
|
||||
import { execPath } from 'process'
|
||||
import { join } from 'path'
|
||||
@@ -22,10 +23,19 @@ export async function runSelfInstaller(inputs: Inputs): Promise<number> {
|
||||
const response = await fetch('https://pnpm.js.org/pnpm.js')
|
||||
response.body.pipe(cp.stdin)
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
const exitCode = await new Promise<number>((resolve, reject) => {
|
||||
cp.on('error', reject)
|
||||
cp.on('close', resolve)
|
||||
})
|
||||
if (exitCode === 0) {
|
||||
const pnpmHome = join(dest, 'node_modules/.bin')
|
||||
core.addPath(pnpmHome)
|
||||
// This environment variable will be available in future steps as PNPM_HOME
|
||||
// It is written as PNPM_HOME_PATH due to a convention in GitHub actions:
|
||||
// > Any new environment variables you set that point to a location on the filesystem should have a _PATH suffix.
|
||||
core.exportVariable('PNPM_HOME_PATH', pnpmHome)
|
||||
}
|
||||
return exitCode
|
||||
}
|
||||
|
||||
export default runSelfInstaller
|
||||
Reference in new issue
Block a user