1
0
Fork 0
toolkit/docs/commands.md

2.0 KiB

:: Commands

The core toolkit package offers a number of convenience functions for setting results, logging, registering secrets and exporting variables across actions. Sometimes, however, its useful to be able to do these things in a script or other tool.

To allow this, we provide a special :: syntax which, if logged to stdout, will allow the runner to perform special behavior on your commands. The following commands are all supported:

Set an environment variable

To set an environment variable, use ::set-env:

echo ::set-env name=FOO::BAR

Running $FOO in a future step will now return BAR

PATH Manipulation

To prepend a string to PATH, use ::addPath:

echo ::add-path::BAR

Running $PATH in a future step will now return BAR:{Previous Path};

Set outputs

To set an output for the step, use ::set-output:

echo ::set-output name=FOO::BAR

Running steps.[step-id].outputs.FOO in your Yaml will now give you BAR

steps:
  - name: Set the value
    id: step_one
    run: echo ::set-output name=FOO::BAR
  - name: Use it
    run: echo ${{ steps.step_one.outputs.FOO }}

Masking Values in Logs

To mask a value in the logs, use ::add-mask:

echo ::add-mask::BAR

Now, future logs containing BAR will be masked. E.g. running echo "Hello FOO BAR World" will now print Hello FOO **** World.

CAUTION: Do not mask short values if you can avoid it, it could render your output unreadable (and future steps' output as well). For example, if you mask the letter l, running echo "Hello FOO BAR World" will now print He*********o FOO BAR Wor****d

Log Level

Finally, there are several commands to emit different levels of log output:

log level example usage
debug echo ::debug::My debug message
warning echo ::warning::My warning message
error echo ::error::My error message