diff --git a/dist/index.js b/dist/index.js index 2d517ce..357c0ba 100644 Binary files a/dist/index.js and b/dist/index.js differ diff --git a/src/index.ts b/src/index.ts index 0b7d877..ecea472 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,12 +3,13 @@ import getInputs from './inputs' import setOutputs from './outputs' import installPnpm from './install-pnpm' import pnpmInstall from './pnpm-install' +import pruneStore from './pnpm-store-prune' async function main() { - const isPost = getState('is_post') - if (isPost === 'true') return - saveState('is_post', 'true') const inputs = getInputs() + const isPost = getState('is_post') + if (isPost === 'true') return pruneStore(inputs) + saveState('is_post', 'true') await installPnpm(inputs) console.log('Installation Completed!') setOutputs(inputs) diff --git a/src/pnpm-store-prune/index.ts b/src/pnpm-store-prune/index.ts new file mode 100644 index 0000000..cb45e2c --- /dev/null +++ b/src/pnpm-store-prune/index.ts @@ -0,0 +1,27 @@ +import { spawnSync } from 'child_process' +import { setFailed } from '@actions/core' +import { Inputs } from '../inputs' + +export function pruneStore(inputs: Inputs) { + if (inputs.runInstall.length === 0) { + console.log('Pruning is unnecessary.') + return + } + + console.log('Running pnpm store prune') + const { error, status } = spawnSync('pnpm', ['store', 'prune'], { + stdio: 'inherit', + }) + + if (error) { + setFailed(error) + return + } + + if (status) { + setFailed(`command pnpm store prune exits with code ${status}`) + return + } +} + +export default pruneStore