https://github.com/yisar/juvenile
Simple CICD
https://github.com/yisar/juvenile
Last synced: 6 months ago
JSON representation
Simple CICD
- Host: GitHub
- URL: https://github.com/yisar/juvenile
- Owner: yisar
- License: mit
- Created: 2022-10-29T07:38:33.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-11-01T04:04:45.000Z (about 3 years ago)
- Last Synced: 2025-04-07T08:45:02.638Z (9 months ago)
- Language: Go
- Size: 56.6 KB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Juvenile
### 动机
很久之前就想写一个 cicd 平台,主要是为了方便自己开发
1. dark release
所谓的 dark release,简单理解是不区分环境,但区分版本
不区分测试环境和生产环境,所有的更新都上生产,但是区分版本
比如 app 版本,我们这次更新上 app 2.0 的版本,但不上 1.0 的版本
比如 k8s 的机器,我们这次上的是 A 机器,但不上 B 机器
同时配合灰度,我们上 2.0 版本,上 10%,我们上 A 机器,上 20%
也就是说,dark release 不再强制区分环境,随之而来的概念是灰度控制
2. 直接支持 github action 的 yml
这就意味着可以直接复用很多现成的 actions,也算是提供了一种拓展性,以便实现一些特殊功能
比如小程序的发布,客户端的分流发布,甚至可以在脚本里做权限的审核,等等
以上,这是我对 cicd 平台的思考,1. 环境 => 灰度 2. gitlab.yml => github.action
#### 总体架构
其实很简单,主要是两个 channel
channel A 负责并发执行任务,channel B 负责 SSE 往 client 传输日志,剩下的就是 curd 操作了