mirror of
				https://github.com/pnpm/action-setup.git
				synced 2025-11-01 01:42:13 +08:00 
			
		
		
		
	Create some files
This commit is contained in:
		
							
								
								
									
										21
									
								
								src/inputs/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/inputs/index.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | |||||||
|  | import { getInput, InputOptions } from '@actions/core' | ||||||
|  |  | ||||||
|  | export interface Inputs { | ||||||
|  |   readonly version: string | ||||||
|  |   readonly dest: string | ||||||
|  |   readonly binDest: string | ||||||
|  |   readonly registry: string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const options: InputOptions = { | ||||||
|  |   required: true, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export const getInputs = (): Inputs => ({ | ||||||
|  |   version: getInput('version', options), | ||||||
|  |   dest: getInput('dest', options), | ||||||
|  |   binDest: getInput('bin_dest', options), | ||||||
|  |   registry: getInput('registry', options), | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | export default getInputs | ||||||
							
								
								
									
										17
									
								
								src/install/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/install/index.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | import { setFailed } from '@actions/core' | ||||||
|  | import { getInputs } from '../inputs' | ||||||
|  | import runSelfInstaller from './run' | ||||||
|  |  | ||||||
|  | export { runSelfInstaller } | ||||||
|  |  | ||||||
|  | export async function install() { | ||||||
|  |   const { error, status } = await runSelfInstaller(getInputs()) | ||||||
|  |  | ||||||
|  |   if (error) return setFailed(error) | ||||||
|  |  | ||||||
|  |   if (status) { | ||||||
|  |     return setFailed(`Something does wrong, self-installer exits with code ${status}`) | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default install | ||||||
							
								
								
									
										18
									
								
								src/install/run.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/install/run.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | import { spawnSync } from 'child_process' | ||||||
|  | import { downloadSelfInstaller } from '../self-installer' | ||||||
|  | import { Inputs } from '../inputs' | ||||||
|  |  | ||||||
|  | export async function runSelfInstaller(inputs: Inputs) { | ||||||
|  |   return spawnSync('node', { | ||||||
|  |     env: { | ||||||
|  |       PNPM_VERSION: inputs.version, | ||||||
|  |       PNPM_DEST: inputs.dest, | ||||||
|  |       PNPM_BIN_DEST: inputs.binDest, | ||||||
|  |       PNPM_REGISTRY: inputs.registry, | ||||||
|  |     }, | ||||||
|  |     input: await downloadSelfInstaller(), | ||||||
|  |     stdio: 'inherit', | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default runSelfInstaller | ||||||
							
								
								
									
										4
									
								
								src/self-installer/download.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/self-installer/download.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | import download from 'download' | ||||||
|  | import url from './url' | ||||||
|  | export const downloadSelfInstaller = () => download(url) | ||||||
|  | export default downloadSelfInstaller | ||||||
							
								
								
									
										2
									
								
								src/self-installer/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								src/self-installer/index.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | export * from './url' | ||||||
|  | export * from './download' | ||||||
							
								
								
									
										3
									
								
								src/self-installer/url.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/self-installer/url.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | export const ref = '301414cec74a2b6b63c95b42f2ad1790ccb980ed' | ||||||
|  | export const url = `https://raw.githubusercontent.com/pnpm/self-installer/${ref}/install.js` | ||||||
|  | export default url | ||||||
		Reference in New Issue
	
	Block a user