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 作业是构成工作流的各个独立任务。一个作业是一组在同一个运行器上运行的步骤。
4. 步骤
步骤是工作流中作业内可以运行命令(例如 shell 命令或操作)的单个任务。
5. 行动
动作是定义每个作业步骤的命令。它们组合成步骤来创建作业。动作是可移植的独立命令。
工作流程的魔力:
现在我们对不同的组件有了大致的了解,让我们编写并自定义我们的第一个工作流程。
首先,我们需要一个.yml文件来创建我们的工作流程。
所有与 GitHub Actions 相关的工作流文件都必须位于 .github/workflows 目录中,并且必须具有 .yml 或 .yaml 文件扩展名。
注: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 }}
别担心语法有点奇怪,这是 YAML 代码,我会逐行详细解释。所以不用担心 :)
可以添加到工作流程中的特定键:
- 姓名:
- 我们需要提供一个有意义的完整名称,因为它将显示在 GitHub 仓库的操作选项卡上。
- 由于这是一个可选字段,如果您不添加此键及其对应的值,GitHub 会将您的工作流名称设置为相对于存储库根目录的文件路径。
- 在:
- 此必填键指定哪些事件将触发工作流。
- 它接受单个事件或事件数组。
- 工作
- 工作流运行可以包含一个或多个作业。
- 工作编号
- 每个已定义的工作都必须关联一个 job_id。
- 每个职位 ID 必须以下划线 (_) 或字母开头,并且对于该特定职位必须是唯一的。
- 运行
- 这是一个必填字段,用于指定作业将在哪种类型的机器上运行。
- 在本例中,我们使用 ubuntu-latest 作为虚拟环境。
- 步骤
- 步骤是作业中包含的任务。它们可以包含一系列任务,并运行命令、设置任务或执行操作。
综上所述,
每次创建问题时,问题分配工作流程都会运行。这将触发一个名为“自动分配”的作业,该作业将在最新版本的 Ubuntu 系统上运行,该系统运行在 GitHub 托管的运行器上。
该作业中的这一步骤将使用名为“自动分配问题”的操作,该操作可在 GitHub Marketplace 中找到。此步骤将使用仓库令牌 (GITHUB_TOKEN),该令牌会在仓库启用 GitHub Actions 时自动创建。最后,该作业会将一个经办人(在本例中为 deraowl)分配给新创建的问题。
触发工作流
要触发上述工作流程,只需在同一仓库下新建一个 issue,然后点击“提交新 issue”即可。就这么简单。
它将触发上述工作流程。
如果您的工作流因某个原因失败For resources not accessible by integration,请转到github.com/username/repository/actions“设置”>“常规”部分,将工作流权限更改为“读写权限”。这应该可以解决问题。
查看实时操作
现在导航到标题栏中的“操作”部分。在这里,您可以看到即将成功执行的任务auto-assign。这是一个简单的任务,一旦创建了问题,它就会立即开始执行。
这可用于自动分配负责人或自动创建特定标签。我们将在后续文章中探讨更多任务和操作。
GH actions testing现在,如果您查看我们之前在“受让人”部分创建的问题,会发现该问题已分配给 DeRaowl,也就是我。
这个名称是我们根据工作内容定义的assignees。
结束了。
就是这样。创建工作流就是这么简单。在接下来的文章中,我们将探索并创建更复杂的任务,还会解释如何创建任务并将auto-assign其发布到 GitHub Marketplace。
你可以查看我的代码仓库。如果你想深入了解 GitHub Actions,GitHub 提供了非常完善的文档。





