From aa91fd4a8218165972d8b74d2b1d9e83a92efb6a Mon Sep 17 00:00:00 2001 From: Danny McCormick Date: Sun, 4 Aug 2019 09:00:04 -0400 Subject: [PATCH] Update package docs (#38) * Update README.md * Add exec guidance * Add io guidance * Add tool-cache guidance * Readability * Readability * Readability * Nit * Nit * Nit --- README.md | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d5bf5ba..dd5d479 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,83 @@ ## Usage -See [src/core.ts](src/core.ts). +#### 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'); +} +```