GitHub 操作的开发工具
您可以使用一些 GitHub 开发的工具和功能更快地创建操作。
GitHub 操作 is available with GitHub Free, GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. GitHub 操作 is unavailable for per-repository plans, which are legacy billing plans. For more information, see "GitHub's products."
本文内容
GitHub 操作 的 Node.js 工具包
如果开发 Node.js 项目,操作工具包提供可用在项目中加速开发的软件包。 更多信息请参阅 actions/toolkit 仓库。
要快速开始,可以使用 JavaScript 或 Docker 容器操作模板仓库创建仓库。 更多信息请参阅“JavaScript 操作模板”、“Docker 容器操作模板”和“从模板创建仓库”。
记录命令
操作可以与 GitHub 托管的虚拟机进行通信,以设置环境变量,其他操作使用的输出值,将调试消息添加到输出日志和其他任务。
记录命令使用特定格式的 echo
命令。
echo "::log-command parameter1={data},parameter2={data}::{command value}"
注:日志命令和参数名称不区分大小写。
警告:如果您使用命令提示符,则使用记录命令时忽略双引号字符 ("
)。
GitHub 操作 包含各种命令。
- 设置环境变量:
set-env
- 设置输出参数:
set-output
- 添加系统路径:
add-path
- 设置调试消息:
debug
- 设置警告消息:
warning
- 设置错误消息:
error
- 屏蔽日志中的值:
add-mask
- 启动和停止日志命令:
stop-commands
设置环境变量:set-env
::set-env name={name}::{value}
为作业中接下来运行的任何操作创建或更新环境变量。 创建或更新环境变量的操作无法访问新值。 但在作业中的所有后续操作均可访问。 环境变量区分大小写,并且可以包含标点符号。
示例
echo "::set-env name=action_state::yellow"
设置输出参数:set-output
::set-output name={name}::{value}
设置操作的输出参数。 输出参数在操作的元数据文件中定义。 更多信息请参阅“GitHub 操作 的元数据语法”。
如果您尝试设置未在操作元数据文件中声明的输出值,您将收到错误。
示例
echo "::set-output name=action_fruit::strawberry"
添加系统路径:add-path
::add-path::{path}
为当前作业中的所有后续操作将目录添加到系统 PATH
变量之前。 当前运行的操作无法访问新路径变量。
示例
echo "::add-path::/path/to/dir"
设置调试消息:debug
::debug::{message}
将调试消息打印到日志。 您可以创建名为 ACTIONS_STEP_DEBUG
、值为 true
的密码,才能在日志中查看通过此命令设置的调试消息。 要了解关于创建密码和在步骤中使用密码的更多信息,请参阅“GitHub 操作 的虚拟环境”。
示例
echo "::debug file=app.js,line=1::Entered octocatAddition method"
设置警告消息:warning
::warning file={name},line={line},col={col}::{message}
创建警告消息并将该消息打印到日志。 您可以选择提供警告出现位置的文件名 (file
)、行号 (line
) 和列号 (col
)。
示例
echo "::warning file=app.js,line=1,col=5::Missing semicolon"
设置错误消息:error
::error file={name},line={line},col={col}::{message}
创建错误消息并将该消息打印到日志。 您可以选择提供警告出现位置的文件名 (file
)、行号 (line
) 和列号 (col
)。
示例
echo "::error file=app.js,line=10,col=15::Something went wrong"
屏蔽日志中的值:add-mask
::add-mask::{value}
屏蔽值可阻止在日志中打印字符串或变量。 用空格分隔的每个屏蔽的词均替换为 *
字符。 您可以使用环境变量或字符串作为屏蔽的 value
。
屏蔽字符串的示例
当您在日志中打印 "Mona The Octocat"
时,您将看到 "***"
。
echo "::add-mask::Mona The Octocat"
屏蔽环境变量的示例
当您在日志中打印变量 MY_NAME
或值 "Mona The Octocat"
时,您将看到 "***"
而不是 "Mona The Octocat"
。
MY_NAME="Mona The Octocat"
echo "::add-mask::$MY_NAME"
启动和停止日志命令:stop-commands
::stop-commands::{endtoken}
停止处理任何记录命令。 此特殊命令可让您记录任何内容而不会意外运行日志命令。 例如,您可以停止记录以输出带有注释的整个脚本。
停止日志命令的示例
echo "::stop-commands::pause-logging"
要启动日志命令,请传递用于停止记录的令牌。
::{endtoken}::
启动日志命令的示例
echo "::pause-logging::"
使用退出代码设置操作的状态
GitHub 使用退出代码设置 GitHub 操作 的检查运行状态,可以是 success
或 failure
。
退出状态 | 检查运行状态 | 描述 |
---|---|---|
0 |
success |
操作已成功完成,依赖它的其他操作可以开始。 |
非零值 | failure |
任何其他退出代码都表示操作失败。 当操作失败时,所有同时进行的操作都会取消,且跳过未来的操作。 检查运行和检查套件都将收到 failure 状态。 |
在 JavaScript 操作中设置失败退出代码
如果要创建 JavaScript 操作,您可以使用操作工具包 @actions/core
包来记录消息并设置失败退出代码。 例如:
try {
// something
} catch (error) {
core.setFailed(error.message);
}
更多信息请参阅“创建 JavaScript 操作”。
在 Docker 容器操作中设置失败退出代码
如果要创建 Docker 容器操作,您可以在 entrypoint.sh
脚本中设置失败退出代码。 例如:
if <condition> ; then
echo "Game over!"
exit 1
fi
更多信息请参阅“创建 Docker 容器操作”。