Actions 介绍
在 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。