mirror of
				https://github.com/pnpm/action-setup.git
				synced 2025-10-31 09:22:11 +08:00 
			
		
		
		
	Add pnpm install
This commit is contained in:
		
							
								
								
									
										40
									
								
								src/pnpm-install/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								src/pnpm-install/index.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| import process from 'process' | ||||
| import path from 'path' | ||||
| import { spawnSync } from 'child_process' | ||||
| import { setFailed } from '@actions/core' | ||||
| import { Inputs } from '../inputs' | ||||
|  | ||||
| export function runPnpmInstall(inputs: Inputs) { | ||||
|   const env = { | ||||
|     ...process.env, | ||||
|     PATH: inputs.binDest + path.delimiter + process.env.PATH | ||||
|   } | ||||
|  | ||||
|   for (const options of inputs.runInstall) { | ||||
|     const args = ['install'] | ||||
|     if (options.recursive) args.unshift('recursive') | ||||
|     if (options.args) args.push(...options.args) | ||||
|  | ||||
|     const cmdStr = ['pnpm', ...args].join(' ') | ||||
|     console.log('Running', cmdStr) | ||||
|  | ||||
|     const { error, status } = spawnSync('pnpm', args, { | ||||
|       stdio: 'inherit', | ||||
|       cwd: options.cwd, | ||||
|       shell: true, | ||||
|       env, | ||||
|     }) | ||||
|  | ||||
|     if (error) { | ||||
|       setFailed(error) | ||||
|       continue | ||||
|     } | ||||
|  | ||||
|     if (status) { | ||||
|       setFailed(`Command ${cmdStr} (cwd: ${options.cwd}) exits with status ${status}`) | ||||
|       continue | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| export default runPnpmInstall | ||||
		Reference in New Issue
	
	Block a user