Jupyter AI

7 GitHub Actions 自动化教程:工作流文件结构之工作流的组成部分

📅 发表日期: 2024年8月15日

分类: ⚙️GitHub Actions 入门

👁️阅读: --

在上一篇文章中,我们创建了我们的第一个工作流,了解了基本的工作流概念及如何进行简单的测试工作流。本篇将深入探讨工作流文件的基本结构,特别是工作流的组成部分,帮助我们更好地理解如何创建和配置有效的 GitHub Actions 工作流。

工作流的基本组成部分

GitHub Actions 的工作流主要由以下几个组成部分构成:

  1. 名称 (name)
  2. 触发器 (on)
  3. 工作 (jobs)
  4. 环境变量 (env)
  5. 策略 (defaults)

1. 名称 (name)

工作流的名称是可选的,它可以帮助你识别不同的工作流。你可以为工作流命名,使其更具可读性。

name: CI Workflow

2. 触发器 (on)

on 字段指定了工作流的触发条件,比如代码推送、拉取请求等。你可以使用多种事件来触发工作流。以下是一个简单的例子:

on:
  push:
    branches:
      - main

这个例子表示当 main 分支有代码推送时,将会触发此工作流。

3. 工作 (jobs)

jobs 是工作流的核心部分,定义了一组操作,通常会在一个或多个虚拟环境中执行。每个 job 都包含一个或多个步骤 (steps)。我们将在下一篇中详细讨论步骤的定义。

以下是一个定义 jobs 的示例:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

在这个示例中,定义了一个名为 build 的作业,指定它在 ubuntu-latest 环境中运行,并包括了一个步骤来检出代码。

4. 环境变量 (env)

能够在工作流中设置环境变量,以便许多步骤可以共享相同的变量。这有助于简化配置以及提高工作流的灵活性。以下是如何设置环境变量的示例:

env:
  NODE_ENV: production

任何步骤都可以使用 ${{ env.NODE_ENV }} 访问这个环境变量。

5. 策略 (defaults)

defaults 字段允许你为工作流中的所有作业设置通用配置,例如设置默认的运行环境或者输出目录。例如:

defaults:
  runs-on: ubuntu-latest

这将指定所有作业在 ubuntu-latest 上运行,无需在每个作业中重复设置。

示例工作流文件

综合以上所有元素,以下是一个完整的示例工作流文件:

name: CI Workflow

on:
  push:
    branches:
      - main

env:
  NODE_ENV: production

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        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

这个工作流定义了一个 CI 流程,在每次 main 分支推送时会执行构建、安装依赖和运行测试的步骤。

结语

在本篇中,我们详细讲解了 GitHub Actions 工作流文件的基本结构和组成部分。这些组成部分为我们创建有效的自动化流程奠定了基础。接下来,欢迎阅读我们下一篇文章关于“工作流文件结构之步骤的定义”的内容,我们将更深入地探讨如何定义和组织这些步骤,以构建强大的 CI/CD 流程。

⚙️GitHub Actions 入门 (滚动鼠标查看)