封装GitHub workflow,减少新项目的启动成本

新项目想搭建一个强大的 github workflow 还是比较麻烦的,需要自己攒各种组件,没什么复用性。
能否封装 GitHub workflow、封装最佳实践,减少新项目的启动成本?

1. Reusable workflow

一类特殊的workflow,可以让别的workflow像函数调用一样复用,如下图

image.png

https://docs.github.com/cn/actions/using-workflows/reusing-workflows#creating-a-reusable-workflow
https://www.codewrecks.com/post/github/github-actions-templates/

1.1. 社区可供复用的 reusable workflow

生态比较小。感觉可以启动一个 awesome 项目了
https://github.com/VeryGoodOpenSource/very_good_workflows
Dart/flutter 的

https://github.com/chainguard-dev/actions
https://github.com/OpenAstronomy/github-actions-workflows

2. starter workflow: 给新项目用的 workflow 模板

新项目在 action 里可以点一点、选择 starter workflow template


image.png

就会生成一个模板,供你修改、commit:


image.png

文档见
https://docs.github.com/en/actions/using-workflows/creating-starter-workflows-for-your-organization
https://docs.github.com/en/actions/using-workflows/using-starter-workflows

2.1. 如何开发自己的 workflow 模板?

A. 自己在组织的 .github仓库里创建

没法给别的组织用

B. github 预置了一些,可供选择

好像没法ziyou的把自己做的上架给别人用。但是你确实能看到一些 template 是由第三方团体做的,比如GitHub Actions for Azure:
https://github.com/Azure/actions-workflow-samples
https://github.com/Azure/actions

试用了几个预置模板,体验不好。模板里会读一些配置文件,你没有这些配置文件就报错。也就是说,不会生成默认配置文件。这产品做的,最后一公里掉链子

总的来说,感觉产品设计的格局有点小

3. cli 工具,生成 workflow

https://github.com/Azure/draft
不过这个只管生成用于部署到aks的workflow

https://github.com/fregante/ghat
这个是从指定仓库“生成”workflow(其实就是复制过来),但看描述说,这个工具方便做后续更新

4. UI 的方式配置 workflow

很多 workflow 工具提供可视化 UI 来配置 workflow,比写配置文件要简单很多。比如 keyboard maestro 可视化配置 workflow:


image.png

但可惜 github workflow 没提供这样的功能,网上搜到一个实验性产品,已经archive 了
https://github.com/02JanDal/gh-workflow-gui
没有 UI 配置,用起来很不爽啊!

你可能感兴趣的:(封装GitHub workflow,减少新项目的启动成本)