Introduction
Common utils JS/TS Github Action
Installation
npm install github-actions-utils
Usage
Handling inputs
Extract available inputs to the object and check theirs types:
import { actionInputs, transformIfSet } from 'github-actions-utils';
const myActionInputs = {
input1: actionInputs.getString('input1', true),
secretInput2: actionInputs.getString('secretInput2',
true,
true
),
intInput: actionInputs.getInt('intInput'),
floatInput: actionInputs.getFloat('floatInput'),
pathInput: actionInputs.getWsPath('pathInput', true),
arrayInput: transformIfSet(actionInputs.getString('arrayInput', false), s => s.split('|')),
};
Handling outputs
Extract available outputs to the object:
import { ActionOutput, ActionTrOutput } from 'github-actions-utils';
const myActionOutputs = {
output1Name: new ActionOutput('output1Name'),
arrayOutput2Name: new ActionTrOutput('arrayOutput2Name', v => v.join('|')),
boolOutputName: new ActionTrOutput<boolean>('boolOutputName', b => b ? 'true' : 'false'),
};
myActionOutputs.output1Name.setValue('output1value');
myActionOutputs.arrayOutput2Name.setValue(['el1', 'el2']);
myActionOutputs.boolOutputName.setValue(true);
myActionOutputs.arrayOutput2Name.getValue();
myActionOutputs.arrayOutput2Name.getStringValue();
extensionName: new ActionOutput('extensionName'),
Check ncc package is built
If you use ncc
command to pack your action code (as
github example suggests), you may want to ensure that you
didn't forget to run ncc
command and commit packed js file.
Add script to your package.json
:
...
"scripts": {
"build": "tsc",
"pack": "ncc build",
"all": "npm run build && npm run pack",
"checkPackCommited": "checkIsUnchanged ./dist/index.js" <---- this one
}
...
Add script call in a build-test workflow after pack:
- name: Check pack is up-to-date
run: npm run checkPackCommited
This command will check that after build performed in workflow ./dist/index.js
file remains unchanged.