1
0
Fork 0
toolkit/packages/core
Danny McCormick 293aa1ae02 Update package docs (#38)
* Update README.md

* Add exec guidance

* Add io guidance

* Add tool-cache guidance

* Readability

* Readability

* Readability

* Nit

* Nit

* Nit
2019-08-04 09:00:04 -04:00
..
__tests__ Combine exit into core; Remove toolkit (#21) 2019-06-25 13:54:41 -04:00
src Combine exit into core; Remove toolkit (#21) 2019-06-25 13:54:41 -04:00
README.md Update package docs (#38) 2019-08-04 09:00:04 -04:00
package-lock.json Normalize package versions (#20) 2019-06-24 14:36:36 -04:00
package.json Combine exit into core; Remove toolkit (#21) 2019-06-25 13:54:41 -04:00
tsconfig.json Add Bryan's core code 2019-05-16 16:40:21 -04:00

README.md

@actions/core

Core functions for setting results, logging, registering secrets and exporting variables across actions

Usage

Inputs/Outputs

You can use this library to get inputs or set outputs:

const core = require('@actions/core');

const myInput = core.getInput('inputName', { required: true });

// Do stuff

core.setOutput('outputKey', 'outputVal');

Exporting variables/secrets

You can also export variables and secrets for future steps. Variables get set in the environment automatically, while secrets must be scoped into the environment from a workflow using {{ secret.FOO }}. Secrets will also be masked from the logs:

const core = require('@actions/core');

// Do stuff

core.exportVariable('envVar', 'Val');
core.exportSecret('secretVar', variableWithSecretValue);

PATH Manipulation

You can explicitly add items to the path for all remaining steps in a workflow:

const core = require('@actions/core');

core.addPath('pathToTool');

Exit codes

You should use this library to set the exit code for your action:

const core = require('@actions/core');

try {
  if (work to do) {
    // Do work
  } else {
    // Set neutral indicates that the action terminated but did not fail (aka there was no work to be done)
    core.setNeutral();
  }
}
catch (err) {
  // setFailed logs the message and sets a failing exit code
  core.setFailed(`Action failed with error ${err}`);
}

Logging

Finally, this library provides some utilities for logging:

const core = require('@actions/core');

const myInput = core.getInput('input');
try {
  core.debug('Inside try block');
  
  if (!myInput) {
    core.warning('myInput wasnt set');
  }
  
  // Do stuff
}
catch (err) {
  core.error('Error ${err}, action may still succeed though');
}