独角鲸:简单连续集成系统的PoC

时间:2024-02-21 12:06:49
【文件属性】:

文件名称:独角鲸:简单连续集成系统的PoC

文件大小:47KB

文件格式:ZIP

更新时间:2024-02-21 12:06:49

go server continuous-integration ci rest-api

独角鲸 一个非常简单的CI系统的PoC包含3个微服务: 代理:这是监视程序,理想情况下,它应该订阅远程存储库(例如github上的webhooks),等待新事件通过中间件(例如RabbitMQ任务队列)异步地分派给工作人员。 分派器:一个简单的RESTful服务器,负责通过RPC(当前使用内置的net/rpc程序包, gRPC可能是更好的生产解决方案)通过RPC平衡CI工作到工作池(运行程序)的工作,并收集一些有用的统计信息通过监视他们的状态。 公开一些API以获取作业的相关信息或强制进行一些重新提交。 Runner: Orchestrate通过在旅途中创建容器在一个隔离的环境中安全地接收工作。 基本原理 Go中的一个简单项目实际上是为了学习语言而设计的,因为它为改进和增加功能增加了很多空间。 理想情况下,应将一堆赛跑者散布在具有相似硬件的对等子子网上,并且每个人都要向调度程序注册。 除了注册自身之外,另一种方法可能是使用负载平衡器或代理,将其URL注册到调度程序,并要求分配工作。 建筑草图 Agent微服务负责订阅VC的事件通知系统(目前仅支持GitHub),并将尚未处理的


【文件预览】:
narwhal-master
----go.mod(676B)
----.github()
--------workflows()
----go.sum(11KB)
----draft-architecture.png(19KB)
----backend()
--------ci.go(2KB)
--------runner.go(5KB)
--------repository.go(3KB)
--------commit.go(2KB)
--------repository_test.go(2KB)
--------dispatcher.go(3KB)
--------runner_proxy.go(2KB)
----internal()
--------message_queue.go(3KB)
--------middlewares.go(2KB)
----LICENSE(1KB)
----README.md(2KB)
----.gitignore(262B)
----cmd()
--------runner()
--------dispatcher()
--------agent()
----agent()
--------handlers.go(3KB)
--------agent.go(3KB)
--------middlewares.go(2KB)

网友评论