📜  GitHub 操作简介

📅  最后修改于: 2022-05-13 01:58:11.183000             🧑  作者: Mango

GitHub 操作简介

GitHub Actions 是一个 CI/CD(持续集成/持续部署)平台,用于自动化构建、测试和部署过程。使用 GitHub 操作,我们可以使用工作流构建和测试存储库中的每个拉取请求,或者使用工作流将合并的拉取请求推送到生产环境。 GitHub Actions 允许您执行流程以响应存储库中的事件。例如,每当有人在您的存储库中提交新问题时,您可以执行一个流程来自动添加所需的标签,或者如果有人向您的存储库发送拉取请求,那么您构建的自动化工作流程可以检查拉取请求是否符合条件是否合并到主代码中。下图解释了软件工程师完成的工作流程以及对 CI/CD 管道的需求。

CICD管道

GitHub Actions 的角色在第 2 步之后出现。完成项目编码后,将其上传到 GitHub 并构建脚本以在每次提交更改或其他人创建拉取请求时对其进行测试。如果发生任何异常,GitHub Actions 将导致构建失败,从而阻止合并修改。否则,构建将成功,修改后的项目将可供下载。

GitHub Actions 的组件

当存储库中发生事件时,例如打开拉取请求或提出问题时,可以设置要触发的 GitHub 操作流程。工作流包括一个或多个可以按顺序或同时执行的作业。 GitHub Actions 的组件如下所示:

1. 工作流程

工作流是执行一个或多个任务的可编程自动化过程。工作流程以 YAML(另一种标记语言)文件编写,该文件已签入您的存储库。它们可以由存储库中的事件、手动或在设定的时间表上触发。可以有 n 个可以在所需时间触发的工作流。例如,您可能有一个工作流为发送到您的存储库的每个拉取请求构建测试,或者一旦构建的测试通过后将您的代码推送到生产中的工作流。因此,一旦有人向您的存储库发送拉取请求,第一个工作流程就会触发并构建代码以检查它是否工作正常。所有的工作流都写在一个特定的文件和 GitHub 上的一个特定目录中,即.github/workflows/file.yml 。这里 .github/workflows 是目录,file.yml 是扩展名的文件,脚本将在其中写入。

2. 活动

事件是触发工作流的状态或活动。当有人将新提交的代码推送到存储库或提交问题或创建拉取请求时,一些事件将最终触发 GitHub 操作以检查工作流(如果有)并执行工作流中指定的工作。该作业也可以手动或在指定的时间表上开始。

3. 工作

作业就像在同一个运行器上运行的工作流阶段的集合。每个步骤可以是一个 shell 脚本,也可以是一个将要执行的动作。所有的步骤都是按顺序进行的,并且是相互依赖的。由于相互依赖,步骤之间的数据交换可以很容易地完成。让我们只看前面的例子,它说一旦构建通过就将代码发送到生产环境。现在,一旦构建通过下一步将代码发送到生产环境,就会触发,否则它将失败。

4. 行动

操作是 GitHub Actions 平台特定的自定义程序,它执行复杂但定期执行的工作。使用操作来帮助您在工作流文件中编写更少重复的代码。一个操作可以从 GitHub 获取您的 git 存储库,配置您的构建环境的工具链,或配置您的云提供商的凭据。

5. 跑步者

简单来说,运行器是执行您构建的工作流的服务器。就像需要先使用 mingw 编译 C++ 代码然后运行一样,类似地,当工作流被触发时,运行器会执行它们。每个跑步者一次只能做一份工作。为了运行工作流,GitHub 提供了 Ubuntu Linux、Microsoft Windows 和 macOS 运行器,每个工作流运行都在一个新的、新配置的虚拟机上进行。如果您需要不同的操作系统或特定的硬件设置,您可以托管自己的运行器。