发布于 2026-01-06 11 阅读
0

GitHub Actions 入门指南 - 基础知识

GitHub Actions 入门指南 - 基础知识

自动化是现代 DevOps 实践的关键组成部分,它使软件开发团队能够快速高效地开发、测试和部署软件。GitHub Actions 是一个强大的自动化平台,可用于自动化测试、构建和部署。

借助 GitHub Actions,开发人员可以创建自定义工作流,与现有流程集成,并实现从代码到部署的工作流程自动化。

先决条件

虽然我们会从头开始探索 GitHub Actions,但最好事先对它有一些基本的了解。

  • GitHub

  • YAML(另一种标记语言)

读完本文,你将能够编写一个简单的工作流程,该工作流程会在用户在 GiHub 中创建问题时触发,并自动分配给指定的用户。

那么,GitHub Actions 是什么?

简单来说,GitHub Actions 是一种让你的电脑自动执行某些操作的方法。例如,你可以设置让电脑在你每次修改代码时检查错误,或者在你准备与他人分享项目时自动创建新版本。这就像拥有一个机器人助手来帮助你完成项目一样!

GitHub Actions 及其组件

在深入创建工作流程和操作之前,最好先了解创建它们所涉及的关键概念。

1. 工作流程

GitHub 工作流是一个可配置的自动化流程,由 YAML 文件定义,当存储库中触发任何事件时,该流程将运行。

工作流在存储库的目录中定义 .github/workflows 。

2. 事件

GitHub 事件是特殊的触发器,可以触发工作流运行。例如,当有人向代码仓库推送更改时,就可以触发工作流运行。

GH Actions 是事件驱动的,这意味着您可以定义在特定事件发生后要执行的操作。

3. 工作

GitHub 作业是构成工作流的各个独立任务。一个作业是一组在同一个运行器上运行的步骤。

GitHub 招聘信息

4. 步骤

步骤是工作流中作业内可以运行命令(例如 shell 命令或操作)的单个任务。

5. 行动

动作是定义每个作业步骤的命令。它们组合成步骤来创建作业。动作是可移植的独立命令。

工作流程的魔力:

现在我们对不同的组件有了大致的了解,让我们编写并自定义我们的第一个工作流程。

首先,我们需要一个.yml文件来创建我们的工作流程。

所有与 GitHub Actions 相关的工作流文件都必须位于 .github/workflows 目录中,并且必须具有 .yml 或 .yaml 文件扩展名。

GitHub Actions 入门指南

注:gh-actions是我创建的仓库名称。您可以根据自己的喜好命名。

第一套工作流程

name: GH Actions
on:
    issues:
        types: [opened]
jobs:
    auto-assign:
        runs-on: ubuntu-latest
        steps:
            - name: 'Auto-assign PR'
              uses: pozil/auto-assign-issue@v1
              with:
                  assignees: deraowl
                  repo-token: ${{ secrets.GITHUB_TOKEN }}
Enter fullscreen mode Exit fullscreen mode

别担心语法有点奇怪,这是 YAML 代码,我会逐行详细解释。所以不用担心 :)

可以添加到工作流程中的特定键:

  1. 姓名:
  • 我们需要提供一个有意义的完整名称,因为它将显示在 GitHub 仓库的操作选项卡上。
  • 由于这是一个可选字段,如果您不添加此键及其对应的值,GitHub 会将您的工作流名称设置为相对于存储库根目录的文件路径。
  1. 在:
  • 此必填键指定哪些事件将触发工作流。
  • 它接受单个事件或事件数组。
  1. 工作
  • 工作流运行可以包含一个或多个作业。
  1. 工作编号
  • 每个已定义的工作都必须关联一个 job_id。
  • 每个职位 ID 必须以下划线 (_) 或字母开头,并且对于该特定职位必须是唯一的。
  1. 运行
  • 这是一个必填字段,用于指定作业将在哪种类型的机器上运行。
  • 在本例中,我们使用 ubuntu-latest 作为虚拟环境。
  1. 步骤
  • 步骤是作业中包含的任务。它们可以包含一系列任务,并运行命令、设置任务或执行操作。

综上所述,

每次创建问题时,问题分配工作流程都会运行。这将触发一个名为“自动分配”的作业,该作业将在最新版本的 Ubuntu 系统上运行,该系统运行在 GitHub 托管的运行器上。

该作业中的这一步骤将使用名为“自动分配问题”的操作,该操作可在 GitHub Marketplace 中找到。此步骤将使用仓库令牌 (GITHUB_TOKEN),该令牌会在仓库启用 GitHub Actions 时自动创建。最后,该作业会将一个经办人(在本例中为 deraowl)分配给新创建的问题。

触发工作流

触发工作流程

要触发上述工作流程,只需在同一仓库下新建一个 issue,然后点击“提交新 issue”即可。就这么简单。

它将触发上述工作流程。

如果您的工作流因某个原因失败For resources not accessible by integration,请转到github.com/username/repository/actions“设置”>“常规”部分,将工作流权限更改为“读写权限”。这应该可以解决问题。

GitHub 工作流程错误

查看实时操作

GitHub Action 实时运行

现在导航到标题栏中的“操作”部分。在这里,您可以看到即将成功执行的任务auto-assign。这是一个简单的任务,一旦创建了问题,它就会立即开始执行。

这可用于自动分配负责人或自动创建特定标签。我们将在后续文章中探讨更多任务和操作。

GH actions testing现在,如果您查看我们之前在“受让人”部分创建的问题,会发现该问题已分配给 DeRaowl,也就是我。

这个名称是我们根据工作内容定义的assignees

GitHub 行动

结束了。

就是这样。创建工作流就是这么简单。在接下来的文章中,我们将探索并创建更复杂的任务,还会解释如何创建任务并将auto-assign其发布到 GitHub Marketplace。

你可以查看我的代码仓库。如果你想深入了解 GitHub Actions,GitHub 提供了非常完善的文档。


参考

文章来源:https://dev.to/this-is-learning/github-actions-basics-12em