2019-05-16 16:40:21 -04:00
# `@actions/core`
2019-05-16 23:36:45 -04:00
> Core functions for setting results, logging, registering secrets and exporting variables across actions
2019-05-16 16:40:21 -04:00
## Usage
2019-08-04 09:00:04 -04:00
#### Inputs/Outputs
You can use this library to get inputs or set outputs:
2019-08-20 22:15:05 -07:00
``` js
2019-08-04 09:00:04 -04:00
const core = require ( '@actions/core' ) ;
const myInput = core . getInput ( 'inputName' , { required : true } ) ;
// Do stuff
core . setOutput ( 'outputKey' , 'outputVal' ) ;
```
2019-08-24 09:17:35 -04:00
#### Exporting variables
2019-08-04 09:00:04 -04:00
2019-08-24 09:17:35 -04:00
You can also export variables for future steps. Variables get set in the environment.
2019-08-04 09:00:04 -04:00
2019-08-20 22:15:05 -07:00
``` js
2019-08-04 09:00:04 -04:00
const core = require ( '@actions/core' ) ;
// Do stuff
core . exportVariable ( 'envVar' , 'Val' ) ;
```
#### PATH Manipulation
You can explicitly add items to the path for all remaining steps in a workflow:
2019-08-21 01:16:47 -04:00
``` js
2019-08-04 09:00:04 -04:00
const core = require ( '@actions/core' ) ;
core . addPath ( 'pathToTool' ) ;
```
#### Exit codes
2019-08-06 09:12:30 -04:00
You should use this library to set the failing exit code for your action:
2019-08-04 09:00:04 -04:00
2019-08-20 22:15:05 -07:00
``` js
2019-08-04 09:00:04 -04:00
const core = require ( '@actions/core' ) ;
try {
2019-08-06 09:12:30 -04:00
// Do stuff
2019-08-04 09:00:04 -04:00
}
catch ( err ) {
// setFailed logs the message and sets a failing exit code
core . setFailed ( ` Action failed with error ${ err } ` ) ;
}
```
#### Logging
2019-08-12 17:00:55 -04:00
Finally, this library provides some utilities for logging. Note that debug logging is hidden from the logs by default. This behavior can be toggled by enabling the [Step Debug Logs ](../../docs/action-debugging.md#step-debug-logs ).
2019-08-04 09:00:04 -04:00
2019-08-20 22:15:05 -07:00
``` js
2019-08-04 09:00:04 -04:00
const core = require ( '@actions/core' ) ;
const myInput = core . getInput ( 'input' ) ;
try {
core . debug ( 'Inside try block' ) ;
if ( ! myInput ) {
2019-08-21 15:31:44 -04:00
core . warning ( 'myInput was not set' ) ;
2019-08-04 09:00:04 -04:00
}
// Do stuff
}
catch ( err ) {
2019-08-13 17:13:12 -05:00
core . error ( ` Error ${ err } , action may still succeed though ` ) ;
2019-08-04 09:00:04 -04:00
}
```