跳至主要内容

了解 GitHub Actions

了解 GitHub Actions 的基础知识,包括核心概念和基本术语。

概述

GitHub Actions 是一个持续集成和持续交付 (CI/CD) 平台,允许您自动化构建、测试和部署管道。您可以创建工作流,构建和测试提交到您存储库的每个拉取请求,或将合并的拉取请求部署到生产环境。

GitHub Actions 不仅限于 DevOps,还允许您在存储库中发生其他事件时运行工作流。例如,您可以运行一个工作流,以便在有人在您的存储库中创建新问题时自动添加相应的标签。

GitHub 提供 Linux、Windows 和 macOS 虚拟机来运行您的工作流,或者您可以在自己的数据中心或云基础设施中托管自己的自托管运行器。

GitHub Actions 的组件

您可以配置一个 GitHub Actions **工作流**,使其在存储库中发生**事件**时触发,例如打开拉取请求或创建问题。您的工作流包含一个或多个**作业**,这些作业可以按顺序或并行运行。每个作业将在其自己的虚拟机**运行器**或容器内运行,并且具有一个或多个**步骤**,这些步骤要么运行您定义的脚本,要么运行**操作**,操作是可以简化工作流的可重用扩展。

Diagram of an event triggering Runner 1 to run Job 1, which triggers Runner 2 to run Job 2. Each of the jobs is broken into multiple steps.

工作流

**工作流**是一个可配置的自动化流程,它将运行一个或多个作业。工作流由检入存储库的 YAML 文件定义,并在存储库中的事件触发时运行,或者可以手动触发,或者在定义的计划中触发。

工作流在存储库中的 .github/workflows 目录中定义。一个存储库可以有多个工作流,每个工作流都可以执行不同的任务集,例如

  • 构建和测试拉取请求。
  • 每次创建版本时都部署您的应用程序。
  • 在打开新问题时添加标签。

您可以在另一个工作流中引用工作流。有关更多信息,请参阅“重用工作流”。

有关更多信息,请参阅“编写工作流”。

事件

**事件**是存储库中触发**工作流**运行的特定活动。例如,当有人创建拉取请求、打开问题或将提交推送到存储库时,活动可能源自 GitHub。您还可以通过计划、通过发布到 REST API或手动触发工作流运行。

有关可用于触发工作流的事件的完整列表,请参阅触发工作流的事件

作业

**作业**是工作流中的一组在同一**运行器**上执行的**步骤**。每个步骤要么是要执行的 shell 脚本,要么是要运行的**操作**。步骤按顺序执行,并且相互依赖。由于每个步骤都在同一运行器上执行,因此您可以将数据从一个步骤共享到另一个步骤。例如,您可以有一个步骤构建应用程序,然后是一个步骤测试已构建的应用程序。

您可以配置作业与其他作业的依赖关系;默认情况下,作业没有依赖关系并并行运行。当作业依赖于另一个作业时,它会在运行之前等待依赖作业完成。

例如,您可以为不同的体系结构配置多个构建作业,而没有任何作业依赖关系,以及一个依赖于这些构建的打包作业。构建作业并行运行,一旦它们成功完成,打包作业就会运行。

有关更多信息,请参阅“选择工作流执行的操作”。

操作

**操作**是 GitHub Actions 平台的自定义应用程序,用于执行复杂但经常重复的任务。使用操作可以帮助减少在**工作流**文件中编写的重复代码量。操作可以从 GitHub 拉取您的 Git 存储库,为您的构建环境设置正确的工具链,或设置到您的云提供商的身份验证。

您可以编写自己的操作,也可以在 GitHub Marketplace 中查找要在工作流中使用的操作。

有关操作的更多信息,请参阅“共享自动化”。

运行器

**运行器**是在触发工作流时运行工作流的服务器。每个运行器一次只能运行一个**作业**。GitHub 提供 Ubuntu Linux、Microsoft Windows 和 macOS 运行器来运行您的**工作流**。每次工作流运行都在一个新的、新预配的虚拟机中执行。

GitHub 还提供更大的运行器,这些运行器以更大的配置提供。有关更多信息,请参阅“使用更大的运行器”。

如果您需要其他操作系统或需要特定的硬件配置,则可以自行托管运行器。

有关自托管运行器的更多信息,请参阅“自行托管运行器”。

后续步骤

GitHub Actions 可以帮助您自动执行应用程序开发流程的几乎每个方面。准备开始了吗?以下是一些有关使用 GitHub Actions 执行后续步骤的有用资源

  • 要创建 GitHub Actions 工作流,请参阅“使用工作流模板”。
  • 对于持续集成 (CI) 工作流,请参阅“构建和测试”。
  • 对于构建和发布包,请参阅“发布包”。
  • 对于部署项目,请参阅“用例和示例”。
  • 对于在 GitHub 上自动化任务和流程,请参阅“管理项目”。
  • 有关演示 GitHub Actions 更复杂功能的示例,请参阅“用例和示例”。这些详细示例说明了如何在运行器上测试代码、访问 GitHub CLI 以及使用并发和测试矩阵等高级功能。
  • 要证明您在使用 GitHub Actions 自动化工作流和加速开发方面的熟练程度,请通过 GitHub 认证获得 GitHub Actions 证书。有关更多信息,请参阅“关于 GitHub 认证”。