Actions 介绍

Mr.Hope ... 2021-02-18 大约 3 分钟

在 GitHub Actions 的仓库中自动化、自定义和执行软件开发工作流程。

您可以发现、创建和共享操作以执行您喜欢的任何作业 (包括 CI/CD) ,并将操作合并到完全自定义的工作流程中。

# 特点

  • GitHub 把组成持续集成的操作称为 actions。

  • GitHub 允许开发者把每个操作写成独立的脚本文件,存放到代码仓库,使得其他开发者可以引用。

  • 如果您需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合。这就是 GitHub Actions 最特别的地方。

  • GitHub 做了一个官方市场,可以搜索到他人提交的 actions。另外, awesome actions (opens new window) 仓库收集了很多有用的 actions。

持续集成

关于持续集成 (CI) 的概念与介绍,详见 基础 → 持续集成

# 简介

GitHub Actions 帮助您自动完成软件开发周期内的任务。 GitHub Actions 是事件驱动的,意味着您可以在指定事件发生后运行一系列命令。 例如,每次有人为仓库创建拉取请求时,您都可以自动运行命令来执行软件测试脚本。

# 组件

下面是一起运行作业的多个 GitHub Actions 组件列表。 您可以查看这些组件如何相互作用。

# workflow

工作流程 (workflow) 是您添加到仓库的自动化过程。 工作流程由一项或多项作业组成,可以计划或由事件触发。 工作流程可用于在 GitHub 上构建、测试、打包、发布或部署项目。

持续集成一次运行的过程,就是一个 workflow。

# event

事件 (event) 是触发工作流程的特定活动。 例如,当有推送提交到仓库或者创建议题或拉取请求时,GitHub 就可能产生活动。

您还可以使用仓库的 web hook 在发生外部事件时触发工作流程。

提示

事件是 workflow 执行的判定。可以通过配置工作流程,来决定在哪些事件被触发执行。

同时工作流也可以读取触发事件的相关信息,以在不同情况下执行不同的任务。

# Jobs

作业 (job) 是在同一运行服务器上执行的一组步骤。

默认情况下,包含多个作业的工作流程将同时运行这些作业。

您也可以配置工作流程按顺序运行作业。例如,工作流程可以有两个连续的任务来构建和测试代码,其中测试作业取决于构建作业的状态。如果构建作业失败,测试作业将不会运行。

提示

作业是工作流程中一个完整任务的封装。

一个 workflow 由一个或多个 jobs 构成,一次持续集成的运行,可以完成多个作业,对应多个任务。

# Steps

步骤 (step) 是可以在作业中运行命令的单个任务。步骤可以是操作或 shell 命令。

作业中的每个步骤在同一运行器上执行,可让该作业中的操作互相共享数据。

提示

每个 job 由多个 step 构成,一步步完成。

# Action

操作 (Action) 是独立命令,它们组合到步骤以创建作业。

操作是工作流程最小的便携式构建块。 您可以创建自己的操作,也可以使用 GitHub 社区创建的操作。要在工作流程中使用操作,必须将其作为一个步骤。

# Server

运行器 (Server) 是安装了 GitHub Actions 运行器应用程序的服务器。

您可以使用 GitHub 托管的运行器或托管您自己的运行器。运行器将侦听可用的作业,每次运行一个作业,并将进度、日志和结果报告回 GitHub。

对于 GitHub 托管的运行器,工作流程中的每项作业都会在一个新的虚拟环境中运行。

GitHub 托管的运行器基于 Ubuntu Linux、Microsoft Windows 和 macOS。