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

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-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 操作 的检查运行状态,可以是 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 容器操作”。

问问别人

找不到要找的内容?

联系我们