Agola
CI/CD 重新定义
如需了解 Agola 的介绍,可以查看这篇文章
试用
请查看 agolademo 示例
特性
- 易于安装和管理。
- 可扩展且高可用:从单实例(单进程)部署扩展到分布式部署。
- 可部署在任何地方:Kubernetes、IaaS、裸机,并可在任何地方执行"任务"(目前支持容器执行器如 Docker 或编排器和 Kubernetes,但可轻松扩展到未来技术或虚拟机)。
- 支持任何语言、部署系统等(只需使用正确的镜像)。
- 同时集成多个 Git 提供商:可以在同一个 Agola 安装中添加来自 GitHub、GitLab、Gitea(以及更多即将支持)的仓库。
- 用于管理完整的开发生命周期:从构建到部署。
- 任务工作流(我们称之为运行)具有实现扇入、扇出、矩阵等功能的能力,一切都容器化以实现最大的可重复性。
- 基于 Git 的工作流:运行定义提交在 Git 仓库中(因此一切都可追踪和重现)。运行执行由 Git 操作(推送、拉取请求)触发。
- 设计时考虑了实现最多一次运行的能力:在生产环境部署时,我们不希望有多个并发的部署执行...
- 可重启和可重现的运行(使用相同的源代码提交、变量等从头开始或从失败的任务重新启动运行)
- 用户直接运行:让每个用户都能使用与推送到 Git/开启拉取请求时相同的运行定义,在 Agola 安装中测试他们的软件,只需一个命令,就像在本地运行测试一样(无需超级强大的工作站)。
- 可测试的"运行"(如果无法测试运行定义的更改,CI/CD 环境有什么用?):使用相同的运行定义,但使用强大的密钥和变量系统访问不同的资源(环境、Docker 仓库等)。
- 不尝试将 YAML 扩展为模板语言,而是使用真正的模板语言(目前是 jsonnet)轻松生成运行配置,无副作用。
- 高级权限系统(正在开发中)。
- 依赖缓存以加快任务速度
文档
本地开发
请参阅如何开发 Agola
为 Agola 贡献
Agola 是一个基于 Apache 2.0 许可的开源项目,欢迎贡献! 要提交您的更改,请开启一个拉取请求。