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

关于操作

GitHub 操作 可让您直接在 GitHub 仓库中创建自定义软件开发生命周期 (SDLC) 工作流程。

GitHub 操作 is available with GitHub Free, GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. 更多信息请参阅“GitHub 的产品。”

本文内容

关于操作

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

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

操作在虚拟环境或 Docker 容器中运行。 您可以定义操作的输入、输出和环境变量。

操作类型

您可以创建 Docker 容器和 JavaScript 操作。 操作需要元数据文件来定义操作的输入、输出和主要进入点。 元数据文件名必须为 action.yml

类型 虚拟环境
Docker 容器 Linux
JavaScript Linux、MacOS、Windows

Docker 容器操作

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

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

您必须包含 GitHub 操作 配置文件来提供有关操作的元数据。

JavaScript 操作

JavaScript 操作可直接在 GitHub 托管的任何虚拟机上运行,并且操作代码与用于运行代码的环境分开。 使用 JavaScript 操作可简化操作代码,执行速度快于 Docker 容器操作。

JavaScript 操作需要 GitHub 操作 配置文件来提供有关操作的元数据。

选择操作的位置

如果是开发供其他人使用的操作,我们建议将该操作保持在其自己的仓库中,而不是与其他应用程序代码一起捆绑。 这可让您管理操作版本以及跟踪和发行操作,就像任何其他软件一样。

将操作存储在其自己的仓库中更便于 GitHub 社区发现操作,缩小代码库范围以便开发者修复问题和扩展操作,以及从其他应用程序代码的版本解耦操作的版本。

如果创建不打算公开的操作,可以将操作的文件存储在您的仓库中的任何位置。 如果计划将操作、工作流程和应用程序代码合并到一个仓库中,建议将操作存储在 .github 目录中。 例如,.github/actions/action-a.github/actions/action-b

管理操作的版本

工作流程可以使用提交 SHA、分支或标记引用操作的特定版本。

steps:    
  - uses: actions/setup-node@74bc508 # Reference a specific commit
  - uses: actions/setup-node@v1.0    # Reference the major version of a release   
  - uses: actions/setup-node@master  # Reference a branch

GitHub 建议在创建操作时使用语义版本管理,向用户提供稳定的体验。 更多信息请参阅“语义版本号”。

  1. 使用语义版本号 (v1.0.9) 创建发行版。 更多信息请参阅“创建发行版”。
  2. 移动主要版本标记(v1、v2 等)以指向当前版本的 Git 引用。 更多信息请参阅“Git 基本信息 - 标记”。
  3. 对于打破现有工作流程的破坏性更改,则加入新的主要版本标记 (v2)。 例如,更改操作的输入就是破坏性的更改。

为操作创建自述文件

如果计划公开分享您的操作,建议创建自述文件以帮助人们了解如何使用您的操作。 您可以将此信息包含在 README.md 中:

  • 操作的详细描述
  • 必要的输入和输出变量
  • 可选的输入和输出变量
  • 操作使用的密码
  • 操作使用的环境变量
  • 如何在工作流程中使用操作的示例

比较 GitHub 操作与 GitHub 应用程序

GitHub Marketplace 提供用于改进工作流程的工具。 了解每种工具的差异和优势将使您能够选择最适合自己作业的工具。 有关构建操作和应用的更多信息,请参阅 GitHub 开发者文档中的“关于 GitHub 操作”和“关于应用程序”。

GitHub 操作和 GitHub 应用程序的设置

尽管 GitHub 操作和 GitHub 应用程序都提供了构建自动化和工作流程工具的方法,但它们各有优点,使其以不同的方式发挥作用。

GitHub 应用程序:

  • 持续运行并且能够对事件迅速做出反应。
  • 需要持续性数据时效果非常好。
  • 适合处理不费时的 API 请求。
  • 在您提供的服务器或计算基础架构上运行

GitHub 操作:

  • 提供可执行持续集成和持续部署的自动化。
  • 可以直接在虚拟机上或 Docker 容器中运行。
  • 可以包括访问仓库克隆的权限,使部署和发布工具、代码格式化程序和命令行工具能够访问您的代码。
  • 不需要您部署代码或提供应用程序。
  • 具有创建和使用密码的简单界面,该界面使操作能够与第三方服务进行交互,而无需存储使用该操作人员的凭据。

延伸阅读

问问别人

找不到要找的内容?

联系我们