Complete basic

This commit is contained in:
khai96_ 2020-05-08 13:06:16 +07:00
parent 21f3fd8b57
commit 7d62586afe
3 changed files with 26 additions and 11 deletions

12
src/index.ts Normal file
View File

@ -0,0 +1,12 @@
import { setFailed } from '@actions/core'
import getInputs from './inputs'
import install from './install'
const inputs = getInputs()
install(inputs).then(() => {
console.log('Installation Completed!')
}).catch(error => {
console.error(error)
setFailed(error)
})

View File

@ -1,14 +1,11 @@
import { setFailed } from '@actions/core'
import getInputs from '../inputs'
import { Inputs } from '../inputs'
import runSelfInstaller from './run'
export { runSelfInstaller }
export async function install() {
const { error, status } = await runSelfInstaller(getInputs())
if (error) return setFailed(error)
export async function install(inputs: Inputs) {
const status = await runSelfInstaller(inputs)
if (status) {
return setFailed(`Something does wrong, self-installer exits with code ${status}`)
}

View File

@ -1,17 +1,23 @@
import { spawnSync } from 'child_process'
import { spawn } from 'child_process'
import { downloadSelfInstaller } from '../self-installer'
import { Inputs } from '../inputs'
export async function runSelfInstaller(inputs: Inputs) {
return spawnSync('node', {
export function runSelfInstaller(inputs: Inputs): Promise<number> {
const cp = spawn('node', {
env: {
PNPM_VERSION: inputs.version,
PNPM_DEST: inputs.dest,
PNPM_BIN_DEST: inputs.binDest,
PNPM_REGISTRY: inputs.registry,
},
input: await downloadSelfInstaller(),
stdio: 'inherit',
stdio: ['pipe', 'inherit', 'inherit'],
})
downloadSelfInstaller().pipe(cp.stdin)
return new Promise((resolve, reject) => {
cp.on('error', reject)
cp.on('close', resolve)
})
}