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

GitHub Actions 简介

了解 GitHub Actions 的核心概念和各种组件,并查看说明如何为仓库添加自动化的示例。

本文内容

概览

GitHub Actions 帮助您自动完成软件开发周期内的任务。 GitHub Actions 是事件驱动的,意味着您可以在指定事件发生后运行一系列命令。 例如,每次有人为仓库创建拉取请求时,您都可以自动运行命令来执行软件测试脚本。

此示意图说明如何使用 GitHub Actions 自动运行软件测试脚本。 事件会自动触发其中包作业工作流程。 然后,作业使用步骤来控制操作运行的顺序。 这些操作是自动化软件测试的命令。

工作流程概述

GitHub Actions 的组件

下面是一起运行作业的多个 GitHub Actions 组件列表。 您可以查看这些组件如何相互作用。

组件和服务概述

工作流程

工作流程是您添加到仓库的自动化过程。 工作流程由一项或多项作业组成,可以计划或由事件触发。 工作流程可用于在 GitHub 上构建、测试、打包、发布或部署项目。

事件

事件是触发工作流程的特定活动。 例如,当有推送提交到仓库或者创建议题或拉取请求时,GitHub 就可能产生活动。 您还可以使用仓库分发 web 挂钩在发生外部事件时触发工作流程。 有关可用于触发工作流程的事件的完整列表,请参阅触发工作流程的事件

Jobs

作业是在同一运行服务器上执行的一组步骤。 默认情况下,包含多个作业的工作流程将同时运行这些作业。 您也可以配置工作流程按顺序运行作业。 例如,工作流程可以有两个连续的任务来构建和测试代码,其中测试作业取决于构建作业的状态。 如果构建作业失败,测试作业将不会运行。

步骤

A step is an individual task that can run commands in a job. A step can be either an action or a shell command. 作业中的每个步骤在同一运行器上执行,可让该作业中的操作互相共享数据。

操作

操作 是独立命令,它们组合到步骤以创建作业。 操作是工作流程最小的便携式构建块。 您可以创建自己的操作,也可以使用 GitHub 社区创建的操作。 要在工作流程中使用操作,必须将其作为一个步骤。

运行器

A runner is a server that has the GitHub Actions runner application installed. 您可以使用 GitHub 托管的运行器或托管您自己的运行器。 运行器将侦听可用的作业,每次运行一个作业,并将进度、日志和结果报告回 GitHub。 对于 GitHub 托管的运行器,工作流程中的每项作业都会在一个新的虚拟环境中运行。

GitHub 托管的运行器基于 Ubuntu Linux、Microsoft Windows 和 macOS 。 有关 GitHub 托管的运行器的信息,请参阅“ GitHub 托管运行器的虚拟环境”。 如果您需要不同的操作系统或需要特定的硬件配置,可以托管自己的运行器。 有关自托管运行器的信息,请参阅“托管您自己的运行器”。

创建示例工作流程

GitHub Actions 使用 YAML 语法来定义事件、作业和步骤。 这些 YAML 文件存储在代码仓库中名为 .github/workflows 的目录中。

您可以在仓库中创建示例工作流程,只要推送代码,该工作流程就会自动触发一系列命令。 在此工作流程中,GitHub Actions 检出推送的代码,安装软件依赖项,并运行 -v

  1. 在您的仓库中,创建 .github/workflows/ 目录来存储工作流程文件。
  2. .github/workflows/ 目录中,创建一个名为 learn-github-actions.yml 的新文件并添加以下代码。
    name: learn-github-actions
    on: [push]
    jobs:
      check-bats-version:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - uses: actions/setup-node@v1
          - run: npm install -g bats
          - run: bats -v
    
  3. 提交这些更改并将其推送到您的 GitHub 仓库。

您的新 GitHub Actions 工作流程文件现在安装在您的仓库中,每次有人推送更改到仓库时都会自动运行。 有关作业的执行历史记录的详细信息,请参阅“查看工作流程的活动”。

了解工作流程文件

为帮助您了解如何使用 YAML 语法来创建工作流程文件,本节解释介绍示例的每一行:

name: learn-github-actions
可选 - 将出现在 GitHub 仓库的 Actions(操作)选项卡中的工作流程名称。
on: [push]
指定自动触发工作流程文件的事件。 此示例使用 push 事件,这样每次有人推送更改到仓库时,作业都会运行。 您可以设置工作流程仅在特定分支、路径或标记上运行。 有关包含或排除分支、路径或标记的语法示例,请参阅“GitHub Actions 的工作流程语法”
jobs:
learn-github-actions 工作流程文件中运行的所有作业组合在一起。
check-bats-version:
定义存储在 jobs 部分的 check-bats-version 作业的名称。
  runs-on: ubuntu-latest
配置作业在 Ubuntu Linux 运行器上运行。 这意味着该作业将在 GitHub 托管的新虚拟机上执行。 有关使用其他运行器的语法示例,请参阅“GitHub Actions 的工作流程语法”
  steps:
check-bats-version 作业中运行的所有步骤组合在一起。 此部分下嵌套的每行都是一个单独的操作。
    - uses: actions/checkout@v2
uses 关键字指示作业检索名为 actions/checkout@v2 的社区操作的 v2。 这是检出仓库并将其下载到运行器的操作,允许针对您的代码运行操作(例如测试工具)。 只要工作流程针对仓库的代码运行,或者您使用仓库中定义的操作,您都必须使用检出操作。
    - uses: actions/setup-node@v1
此操作会在运行器上安装 node 软件包,使您可以访问 npm 命令。
    - run: npm install -g bats
run 关键字指示作业在运行器上执行命令。 在这种情况下,使用 npm 来安装 bats 软件测试包。
    - run: bats -v
最后,您将运行 bats 命令,并且带有输出软件版本的参数。

可视化工作流程文件

在此关系图中,您可以看到刚刚创建的工作流程文件,以及 GitHub Actions 组件在层次结构中的组织方式。 Each step executes a single action or shell command. 步骤 1 和 2 使用预构建的社区操作。 Steps 3 and 4 run shell commands directly on the runner. 要查找更多为工作流预构建的操作,请参阅“查找和自定义操作”。

工作流程概述

查看作业的活动

作业开始运行后,您可以在 GitHub 上查看每个步骤的活动。

  1. 在 GitHub 上,导航到仓库的主页面。

  2. 在仓库名称下,单击 Actions(操作)

    导航到仓库

  3. 在左侧边栏中,单击您想要查看的工作流程。

    工作流程结果的屏幕截图

  4. 在“Workflow runs(工作流程运行)”下,单击您想要查看的运行的名称。

    工作流程运行的屏幕截图

  5. 单击作业名称以查看每个步骤的结果。

    工作流程运行详细信息的屏幕截图

后续步骤

要继续了解 GitHub Actions,请参阅“查找和自定义操作”。

联系支持

如果需要任何与工作流程配置相关的帮助,比如语法、GitHub 托管的运行器或构建操作,请在 GitHub Community Support 的 GitHub Actions 版面中查找现有主题或发起一个新主题。

如果您有对 GitHub Actions 的反馈或功能请求,请在 GitHub 操作的反馈表 中分享。

如有以下任意情况,无论您的使用或预期使用是否属于使用限制类别,都请联系 GitHub Support or GitHub Premium Support

  • 如果您认为您的帐户受到不正确的限制
  • 如果您在执行您的操作之一时遇到意外错误,例如:唯一的 ID
  • 如果你遇到与预期矛盾现有行为,但不一定是文件记录的情况。

此文档对您有帮助吗?

Privacy policy

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。