跳至主要内容

创建示例工作流

了解如何创建一个由推送事件触发的基本工作流。

简介

本指南将向您展示如何创建一个基本工作流,该工作流在代码推送到您的存储库时触发。

要开始使用预配置的工作流,请浏览 actions/starter-workflows 存储库中的模板列表。有关更多信息,请参阅“使用工作流模板”。

创建示例工作流

GitHub Actions 使用 YAML 语法来定义工作流。每个工作流都作为单独的 YAML 文件存储在您的代码存储库中,位于名为 .github/workflows 的目录中。

您可以在存储库中创建一个示例工作流,该工作流会在每次推送代码时自动触发一系列命令。在此工作流中,GitHub Actions 会检出推送的代码,安装 bats 测试框架,并运行一个基本命令来输出 bats 版本:bats -v

  1. 在您的存储库中,创建 .github/workflows/ 目录以存储您的工作流文件。

  2. .github/workflows/ 目录中,创建一个名为 learn-github-actions.yml 的新文件,并添加以下代码。

    YAML
    name: learn-github-actions
    run-name: ${{ github.actor }} is learning GitHub Actions
    on: [push]
    jobs:
      check-bats-version:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with:
              node-version: '20'
          - run: npm install -g bats
          - run: bats -v
    
  3. 提交这些更改并将其推送到您的 GitHub 存储库。

您的新 GitHub Actions 工作流文件现已安装在您的存储库中,并且将在每次有人向存储库推送更改时自动运行。要查看有关工作流执行历史记录的详细信息,请参阅“查看工作流运行的活动”。

了解工作流文件

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

YAML
name: learn-github-actions

可选 - 工作流的名称,它将显示在 GitHub 存储库的“操作”选项卡中。如果省略此字段,则将使用工作流文件的名称。

run-name: ${{ github.actor }} is learning GitHub Actions

可选 - 从工作流生成的工作流运行的名称,它将显示在存储库“操作”选项卡上的工作流运行列表中。此示例使用带有 github 上下文的表达式来显示触发工作流运行的执行者的用户名。有关更多信息,请参阅“GitHub Actions 的工作流语法”。

on: [push]

指定此工作流的触发器。此示例使用push事件,因此每当有人向存储库推送更改或合并拉取请求时,都会触发工作流运行。这由对每个分支的推送触发;有关仅在对特定分支、路径或标签推送时运行的语法示例,请参阅“GitHub Actions 的工作流语法”。

jobs:

learn-github-actions工作流中运行的所有作业组合在一起。

  check-bats-version:

定义一个名为check-bats-version的作业。子键将定义作业的属性。

    runs-on: ubuntu-latest

配置作业在 Ubuntu Linux 运行器的最新版本上运行。这意味着作业将在 GitHub 托管的新虚拟机上执行。有关使用其他运行器的语法示例,请参阅“GitHub Actions 的工作流语法

    steps:

check-bats-version作业中运行的所有步骤组合在一起。此部分下的每个嵌套项都是一个单独的操作或 shell 脚本。

      - uses: actions/checkout@v4

uses关键字指定此步骤将运行actions/checkout操作的v4版本。这是一个将您的存储库检出到运行器上的操作,允许您对代码运行脚本或其他操作(例如构建和测试工具)。如果您的工作流将使用存储库的代码,则应使用 checkout 操作。

      - uses: actions/setup-node@v4
        with:
          node-version: '20'

此步骤使用actions/setup-node@v4操作安装指定的 Node.js 版本。(此示例使用版本 20。)这会将nodenpm命令都放入您的PATH中。

      - run: npm install -g bats

run关键字指示作业在运行器上执行命令。在本例中,您使用npm安装bats软件测试包。

      - run: bats -v

最后,您将使用输出软件版本的参数运行bats命令。

# Optional - The name of the workflow as it will appear in the "Actions" tab of the GitHub repository. If this field is omitted, the name of the workflow file will be used instead.
name: learn-github-actions

# Optional - The name for workflow runs generated from the workflow, which will appear in the list of workflow runs on your repository's "Actions" tab. This example uses an expression with the `github` context to display the username of the actor that triggered the workflow run. For more information, see "[AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions#run-name)."
run-name: ${{ github.actor }} is learning GitHub Actions

# Specifies the trigger for this workflow. This example uses the `push` event, so a workflow run is triggered every time someone pushes a change to the repository or merges a pull request.  This is triggered by a push to every branch; for examples of syntax that runs only on pushes to specific branches, paths, or tags, see "[AUTOTITLE](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore)."
on: [push]

# Groups together all the jobs that run in the `learn-github-actions` workflow.
jobs:

# Defines a job named `check-bats-version`. The child keys will define properties of the job.
  check-bats-version:

# Configures the job to run on the latest version of an Ubuntu Linux runner. This means that the job will execute on a fresh virtual machine hosted by GitHub. For syntax examples using other runners, see "[AUTOTITLE](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on)"
    runs-on: ubuntu-latest

# Groups together all the steps that run in the `check-bats-version` job. Each item nested under this section is a separate action or shell script.
    steps:

# The `uses` keyword specifies that this step will run `v4` of the `actions/checkout` action. This is an action that checks out your repository onto the runner, allowing you to run scripts or other actions against your code (such as build and test tools). You should use the checkout action any time your workflow will use the repository's code.
      - uses: actions/checkout@v4

# This step uses the `actions/setup-node@v4` action to install the specified version of the Node.js. (This example uses version 20.) This puts both the `node` and `npm` commands in your `PATH`.
      - uses: actions/setup-node@v4
        with:
          node-version: '20'

# The `run` keyword tells the job to execute a command on the runner. In this case, you are using `npm` to install the `bats` software testing package.
      - run: npm install -g bats

# Finally, you'll run the `bats` command with a parameter that outputs the software version.
      - run: bats -v

可视化工作流文件

在此图中,您可以看到您刚刚创建的工作流文件以及 GitHub Actions 组件如何在层次结构中组织。每个步骤都执行单个操作或 shell 脚本。步骤 1 和 2 运行操作,而步骤 3 和 4 运行 shell 脚本。要查找更多用于工作流的预构建操作,请参阅“在工作流中使用预先编写的构建块”。

Diagram showing the trigger, runner, and job of a workflow. The job is broken into 4 steps.

查看工作流运行的活动

触发工作流时,会创建一个执行工作流的工作流运行。工作流运行启动后,您可以在 GitHub 上查看运行进度的可视化图形并查看每个步骤的活动。

  1. 在 GitHub 上,导航到存储库的主页。

  2. 在您的存储库名称下,单击 操作.

    Screenshot of the tabs for the "github/docs" repository. The "Actions" tab is highlighted with an orange outline.

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

    Screenshot of the left sidebar of the "Actions" tab. A workflow, "CodeQL," is outlined in dark orange.

  4. 从工作流运行列表中,单击运行的名称以查看工作流运行摘要。

  5. 在左侧边栏或可视化图形中,单击要查看的作业。

  6. 要查看步骤的结果,请单击该步骤。