---
title: GitHub Actions 与 Workflow 标准化
date: '2018-10-18 15:17:12'
draft: false
summary: GitHub Actions 的意义不只是再做一个 CI，而是把围绕代码仓库发生的自动化流程变成平台内建能力。
slug: github-actions-and-workflow-standardization
syndication:
- platform: Weibo
  url: https://weibo.com/1648815335/4296492221002969
tags:
- github
- workflow
- ci
topics:
- software-engineering
type: post
---

仔细看了下 `GitHub Actions`。当时它还在 beta，需要申请白名单才能开放使用。

从 `Event` 的定义和触发机制看，GitHub 想做的其实不是一个狭义的 CI 工具，而是围绕源码仓库的自动化 `Workflow`，比如 CI、Issue 处理、Release 流程等。

如果它把这件事平台化、标准化，原来一大批围绕 GitHub 做自动化的工具都会被重新影响。

这件事真正有意思的地方在于，Workflow 一旦被仓库平台内建，很多原来只存在于大项目里的自动化实践就更容易复用出来了。比如：

1. 通过 bot 自动整理和分发 issue。
2. 自动生成 release note。
3. 围绕仓库事件组织更复杂的交付和协作流程。

以前这些能力往往是“某个大仓库自己配了一堆脚本和 bot”，小仓库想复用其实很麻烦。平台一旦把事件模型和触发方式统一掉，共享就容易很多。

不过它当时还没有达到我期待的那种“服务器端捷径”的程度。

我也试过不少 Workflow 服务，那个阶段做得最好的感觉还是 `Zapier`。但 `Zapier` 的表达方式本质上还是 `Trigger / Step` 模型，和 iOS 捷径那种更强表达力的组合方式相比，还是差了一截。当然，这也可能是它为了照顾非程序员用户而做的取舍。

<!-- WEIBO_MEDIA_START -->
## 原微博中的媒体

![](./weibo-4296492221002969-1.jpg)

![](./weibo-4296492221002969-2.jpg)
<!-- WEIBO_MEDIA_END -->
