5 理解 GitHub Actions 工作流中的 YAML 文件内容

在上一篇中,我们介绍了如何在 GitHub 上创建一个新的工作流,并简单描述了工作流的基本概念。现在,我们将更加深入地探讨 YAML 文件的结构,以及如何配置和理解写入其中的内容,以便为后续的工作流测试做好准备。

什么是 YAML 文件?

YAML(YAML Ain’t Markup Language)是一种人类易读的数据序列化格式,广泛用于配置文件。在 GitHub Actions 中,工作流是通过 .github/workflows 目录下的 YAML 文件来定义的。这个文件描述了何时、如何以及如何执行 CI/CD 过程。

工作流文件结构

一个典型的 GitHub Actions 工作流 YAML 文件包括几个关键组成部分:nameonjobssteps。下面是一个简单的工作流示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
name: CI Workflow

on:
push:
branches:
- main

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'

- name: Install dependencies
run: npm install

- name: Run tests
run: npm test

组成部分详解

  1. name: 工作流的名称。可以自定义,使其方便理解,比如 CI Workflow 表示这是一个持续集成的工作流。

  2. on: 触发条件。该配置决定了工作流何时被触发。上述示例中,工作流在 main 分支上进行 push 操作时会被触发。

  3. jobs: 工作的集合。一个工作流可以包含多个工作(job)。在这个示例中,我们有一个叫做 build 的工作。

  4. runs-on: 指定一个虚拟环境来运行工作。在这个例子中,ubuntu-latest 表示该工作将在最新版本的 Ubuntu 虚拟机上运行。

  5. steps: 每个工作中的具体步骤。这些步骤会按顺序执行。在上述示例中,包含了以下步骤:

    • 使用 actions/checkout 动作将代码检出到虚拟环境。
    • 使用 actions/setup-node 动作来设置 Node.js 的版本。
    • 运行 npm installnpm test 命令来安装项目依赖并执行测试。

关键字解析

在 YAML 文件中,某些关键字有特定的意义:

  • uses 关键字用于调用其他的 GitHub Actions。这使得我们可以重用已有的操作,例如 actions/checkout@v2actions/setup-node@v2
  • run 关键字后面可以跟任意 shell 命令,所有命令将在运行时执行。

添加环境变量

在工作流中,你还可以定义环境变量,这有助于配置一些值而不需要在每个步骤中硬编码。例如,可以在 jobs 部分增加 env 关键字:

1
2
3
4
5
jobs:
build:
runs-on: ubuntu-latest
env:
NODE_ENV: production

这样,在后续的步骤中,你可以通过使用 $NODE_ENV 来引用这个环境变量。

工作流文件的最佳实践

  1. 使用注释: 在 YAML 文件中,使用 # 来添加注释,这样可以帮助后续的维护者理解每个部分的作用。

    1
    2
    # 这是一个持续集成工作流
    name: CI Workflow
  2. 保持简洁: 尽量避免冗余的步骤和重复杂的结构,保持清晰明了的配置。

  3. 版本控制: 在 uses 中指定每个 actions 的版本(如 @v2),可以确保工作流的可预测性。

  4. 分步骤调试: 如果出现错误,利用工作流的分步骤执行,便于定位问题。

示例总结

通过以上案例,我们了解到一个 GitHub Actions 工作流的基本构成及配置方法。YAML 文件的灵活性使我们能够根据项目需要快速调整工作流。

在下一篇中,我们将继续讨论如何有效测试创建的工作流,以确保它能按照预期执行。请继续关注我们系列教程,掌握 GitHub Actions 的更多技巧和工具!

5 理解 GitHub Actions 工作流中的 YAML 文件内容

https://zglg.work/github-actions-zero/5/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论