Repolode
ovh

ovh/cds

基于 Go 编写的自托管 CI/CD 与 DevOps 自动化平台,以流水线、任务和触发器串联工作流。

可替代:JenkinsGitLab CI

Star
4,846
Fork
457
未关闭 Issue
165
最近提交
5天前

这是什么?

CDS(Continuous Delivery Service)是一个用 Go 编写的自托管持续集成与持续交付平台。它的核心概念是工作流:多条流水线通过触发器、汇合和分叉串联起来,每条流水线由按顺序执行的阶段组成,阶段内包含可并发运行的任务。工作流既可以在 Web UI 中配置,也可以以 YAML 文件的形式存放在 Git 仓库中,并通过工作流模板在团队之间共享。

任务运行在由 hatchery 按需启动的 worker 上。hatchery 支持 Kubernetes、OpenStack、Docker Swarm、vSphere 以及本地进程。任务可以在私有网络中启动数据库、缓存等服务容器用于集成测试。平台与 GitHub、GitLab、Bitbucket Server 集成,可将构建状态回写到提交上。触发方式包括 Git 推送、定时调度、webhook,以及 Kafka 或 RabbitMQ 事件。

平台提供命令行工具 cdsctl,可完成与 UI 相同的操作,同时提供 REST API 和 Go SDK。项目级权限和多租户隔离是内置能力,并支持 Prometheus 指标采集。应用状态保存在数据库中,API 服务可以放在负载均衡之后水平扩展,升级时无需停止 worker。

核心功能

  • 01通过触发器、汇合和分叉将多条流水线串联成工作流
  • 02支持在 Web UI 中配置工作流,也支持以 YAML 文件存放在 Git 中
  • 03任务运行时可同时启动数据库等临时服务容器
  • 04在 Kubernetes、OpenStack、Docker Swarm、vSphere 或本地主机上按需自动扩缩 worker
  • 05与 GitHub、GitLab、Bitbucket Server 集成,回写构建状态
  • 06可通过 cdsctl 命令行、REST API 或 Go SDK 完成所有操作

适用场景

  • 在一个共享实例上为大量微服务统一运行 CI/CD
  • 通过共享的工作流模板统一各团队的构建与部署规范
  • 为每个任务临时启动真实数据库和缓存,进行集成测试
  • 向预发布和生产环境部署,并限制生产环境的发布权限

快速上手

  1. 1

    打开 Docker Compose 的开箱即用教程

  2. 2

    或从发布页面下载官方版本

使用前须知

  • README 明确说明该项目仍在积极开发中。
  • 自托管需要配置数据库和多个 CDS 组件,需要一定的部署工作量。

收录于专题

标签

常见问题

cds 是什么?
基于 Go 编写的自托管 CI/CD 与 DevOps 自动化平台,以流水线、任务和触发器串联工作流。 CDS(Continuous Delivery Service)是一个用 Go 编写的自托管持续集成与持续交付平台。它的核心概念是工作流:多条流水线通过触发器、汇合和分叉串联起来,每条流水线由按顺序执行的阶段组成,阶段内包含可并发运行的任务。工作流既可以在 Web UI 中配置,也可以以 YAML 文件的形式存放在 Git 仓库中,并通过工作流模板在团队之间共享。
cds 可以免费使用吗?用的什么许可证?
cds 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
cds 还在维护吗?
活跃维护中。cds 最近一次提交是在 2026年11月2日。
cds 适合用来做什么?
在一个共享实例上为大量微服务统一运行 CI/CD 通过共享的工作流模板统一各团队的构建与部署规范 为每个任务临时启动真实数据库和缓存,进行集成测试 向预发布和生产环境部署,并限制生产环境的发布权限
cds 怎么安装和运行?
打开 Docker Compose 的开箱即用教程 或从发布页面下载官方版本
在哪里获取 cds?
源代码和安装说明在 GitHub 上:https://github.com/ovh/cds

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目