我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

GitHub 操作的开发工具

您可以使用一些 GitHub 开发的工具和功能更快地创建操作。

GitHub 操作 可用于 GitHub Free、GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub One。 GitHub 操作 is not available for private repositories owned by accounts using legacy per-repository plans. 更多信息请参阅“GitHub 的产品”。

本文内容

GitHub 操作 的 Node.js 工具包

如果开发 Node.js 项目,操作工具包提供可用在项目中加速开发的软件包。 更多信息请参阅 actions/toolkit 仓库。

要快速开始,可以使用 JavaScript 或 Docker 容器操作模板仓库创建仓库。 更多信息请参阅“JavaScript 操作模板”、“Docker 容器操作模板”和“从模板创建仓库”。

记录命令

Actions can communicate with the runner machine to set environment variables, output values used by other actions, add debug messages to the output logs, and other tasks.

记录命令使用特定格式的 echo 命令。

echo "::log-command parameter1={data},parameter2={data}::{command value}"

注:日志命令和参数名称不区分大小写。

警告:如果您使用命令提示符,则使用记录命令时忽略双引号字符 (")。

GitHub 操作 包含各种命令。

设置环境变量:set-env

::set-env name={name}::{value}

为作业中接下来运行的任何操作创建或更新环境变量。 创建或更新环境变量的操作无法访问新值。 但在作业中的所有后续操作均可访问。 环境变量区分大小写,并且可以包含标点符号。

示例
echo "::set-env name=action_state::yellow"

设置输出参数:set-output

::set-output name={name}::{value}

设置操作的输出参数。

Optionally, you can also declare output parameters in an action's metadata file. 更多信息请参阅“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 的密码,才能在日志中查看通过此命令设置的调试消息。 To learn more about creating secrets and using them in a step, see "Creating and using encrypted secrets."

示例
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 操作 的检查运行状态,可以是 successfailure

退出状态 检查运行状态 描述
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 容器操作”。

问问别人

找不到要找的内容?

联系我们