小来说:
为了方便阅读,附上本文结构:
背景
演进
Prow简介
Prow在来也科技的具体实践
代码review,自动合并,合并后触发测试
项目标签管理
Prow集成测试
统计、通知和报警
使用External plugins,修改代码或periodics扩展 Prow,增加CI功能
CI流程
分支CI策略
配置文件CI流程
配置模板
配置填充项
配置发布
结语
演进
![图片](https://bj-res.laiye.com/LaiYeProduction/UEditor/20220627/5b1b6de2835b40b4b69f93facd6f136c.png)
Prow简介
GitHub 自动化
ChatOps via simple /foo commands
通过OWNERS进行权限管理
GitHub PR自动合并 - tide
标签管理
分支保护
release notes管理
CI/CD并行执行,报告,历史记录
Promethus Metrics
Config-as-Code 配置自动生效
插件扩展
Prow在来也科技的具体实践
代码review,自动合并,合并后触发测试
![图片](https://bj-res.laiye.com/LaiYeProduction/UEditor/20220627/81ccc4fbfa9f423f8565d3d151c8f809.png)
![图片](https://bj-res.laiye.com/LaiYeProduction/UEditor/20220627/1d406cf9b78449378670c5a3e170d52e.png)
presubmit job中,会自动拉取代码,在本地执行PR合并,运行事先定义的脚本。
当PR有lgtm和approved,并且没有阻止合并的标签,同时所有check都通过后,PR将被tide自动合并。
![图片](https://bj-res.laiye.com/LaiYeProduction/UEditor/20220627/a6b72870d4ec425f86d7d138b6a22c2e.png)
项目标签管理
Prow集成测试
统计、通知和报警
![图片](https://bj-res.laiye.com/LaiYeProduction/UEditor/20220627/cdcc880e2ac54fb29082619d1c535b13.png)
使用External plugins,修改代码或periodics扩展 Prow,增加CI功能
CI流程
![图片](https://bj-res.laiye.com/LaiYeProduction/UEditor/20220627/c3f6b82f7a9d40c1808f2226e9db4094.png)
分支CI策略
配置模板
![图片](https://bj-res.laiye.com/LaiYeProduction/UEditor/20220627/09fabfae3b1a4cb58080d14abc498fa9.png)
配置填充项
![图片](https://bj-res.laiye.com/LaiYeProduction/UEditor/20220627/9737b3c6d5ca4b8ca94bc2f8894efa99.png)
![图片](https://bj-res.laiye.com/LaiYeProduction/UEditor/20220627/f58fbad566214cafb7b6b4e20e00a19d.png)
配置发布
![图片](https://bj-res.laiye.com/LaiYeProduction/UEditor/20220627/741fd13d600f4118a11d1f922bd63c9e.png)
结语
本文作者:杨进杰,张勇
本文编辑:刘桐烔