我工作的商店正在使用 jenkins 进行持续集成,并使用其升级的构建插件来部署构建工件。但是,随着配置数量的增加,我们在管理此设置时遇到了麻烦。所以我的问题是:
如何设置一个方便的 CI 系统,我可以从中部署各种配置的各种工件,而无需手动编写每个可能的组合脚本?
更多细节:
假设我有构建配置(即分支)A
,B
并且C
. 有 3 个部署目标I
,J
和K
(例如针对各种客户端或消费者)。最后,每个部署的实例都有各种服务X
,Y
和Z
(例如网站、后台任务和数据服务)。各种服务通常是一起推广的;但有时,特别是为了获得修补程序,它们不是。
目前,我们对这些组合中的每一个都有促销活动。所以要安装一个典型的构建,我需要运行 PromotionsJ/X
和config 。不幸的是,服务的数量正在增加,并且在 jenkins 中获取所有这些配置而不会出现任何错误,并且确保在部署时不会忘记或混淆任何组件变得越来越棘手。当然,有超过三个构建配置和三个以上的目标,所以这一切都失控了。J/Y
J/Z
C
一些不太有效的选项:
参数化促销以禁用各种组件。Jenkins 允许参数化促销,但值在您第一次促销时是固定的。我可以通过提升和设置一些参数来消除一定的自由度
J
,但是如果以后的版本坏了,我不能只回滚坏的组件,我需要回滚整个部署。依赖的,参数化的构建。Jenkins 似乎不支持选择依赖哪个构建的参数,如果您手动编码选项,那么“运行”选择参数当然无法工作。
我真正想要的:
在手动接受构建以准备部署后,应将其标记为这样,包括针对哪个目标的参数和针对哪些组件的参数。
安装历史记录按组件按目标记录,而不是(仅)按构建记录。