Skip to main content

关于自定义操作

操作是可以组合来创建作业和自定义工作流程的单个任务。 您可以创建自己的操作,或者使用和自定义 GitHub 社区分享的操作。

关于自定义操作

您可以编写自定义代码来创建操作,以您喜欢的方式与仓库交互,包括使用 GitHub 的 API 以及任何公开的第三方 API 进行交互。 例如,操作可以发布 npm 模块、在创建紧急问题时发送短信提醒,或者部署可用于生产的代码。

你可以编写自己的操作以用于工作流,或者与 GitHub 社区共享你创建的操作。 要与每个人共享您创建的操作,您的仓库必须是公共的。

操作可以直接在计算机或 Docker 容器中运行。 您可以定义操作的输入、输出和环境变量。

操作的类型

注意

You can build Docker container, JavaScript, and composite actions. Actions require a metadata file to define the inputs, outputs, and runs configuration for your action. Action metadata files use YAML syntax, and the metadata filename must be either action.yml or action.yaml. The preferred format is action.yml.

类型LinuxmacOSWindows
Docker 容器
JavaScript
复合操作

Docker 容器操作

Docker 容器使用 GitHub Actions 代码封装环境。 这会创建更加一致、可靠的工作单位,因为操作的使用者不需要担心工具或依赖项。

Docker 容器允许使用特定版本的操作系统、依赖项、工具和代码。 对于必须在特定环境配置中运行的操作,Docker 是一个理想的选择,因为您可以自定义操作系统和工具。 由于创建和检索容器的延时,Docker 容器操作慢于 JavaScript 操作。

Docker 容器操作只能在使用 Linux 操作系统的运行器上执行。 自托管运行器必须使用 Linux 操作系统并安装 Docker 才能运行 Docker 容器操作。 有关自托管运行程序要求的详细信息,请参阅“自托管运行程序”。

JavaScript 操作

JavaScript 操作可以直接在运行器计算机上运行,并将操作代码与用于运行代码的环境分开。 使用 JavaScript 操作可简化操作代码,执行速度快于 Docker 容器操作。

要确保您的 JavaScript 操作与所有 GitHub 托管的运行器(Ubuntu、Windows 和 macOS)兼容,您编写的封装 JavaScript 代码应该是纯粹的 JavaScript,不能依赖于其他二进制文件。 JavaScript 操作直接在运行器上运行,并使用运行器映像中已存在的二进制文件。

如果您正在开发 Node.js 项目,GitHub Actions 工具包提供可用于项目中加速开发的软件包。 有关详细信息,请参阅 actions/toolkit 存储库。

复合操作

复合操作允许你在一个操作中组合多个工作流步骤。 例如,您可以使用此功能将多个运行命令捆绑到一个操作中,然后获得使用该操作在单一步骤中执行捆绑命令的工作流程。 若要查看示例,请查看“创建组合操作”。

后续步骤

如需了解如何管理自定义操作,请参阅 管理自定义操作