郭震 AI公众号:郭震AI

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

发布日期:

分类: Actions

预计阅读: 3 分钟

阅读次数: 0

预计阅读3 分钟
结构重点7 个
图文要点0 张
正文规模1.4k 字

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

什么是 YAML 文件?

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

工作流文件结构

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

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 表示这是一个持续集成的工作流。

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

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

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

  • 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 关键字:

    jobs:
      build:
        runs-on: ubuntu-latest
        env:
          NODE_ENV: production
    

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

    工作流文件的最佳实践

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

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

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

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

    示例总结

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

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

    分享文章

    转发到常用平台

    微信/朋友圈可先复制链接

    相关内容

    更多相关文章

    返回栏目

    Reader Messages

    读者留言

    有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

    最多 800 字

    为了防刷,每条留言会做长度、链接数量和提交频率限制。

    0/800

    留言列表

    0
    正在加载留言...