2017-09-27 48 views
1

我的开发团队希望使用单个GIT仓库存储多个微服务,因为只同步一个仓库更方便。用于多项目git存储库的一个Jenkinsfile

不幸的是,我发现的所有詹金斯管道文献总是在只有一个微服务的回购站的根部显示Jenkinsfile。

如果我们考虑下面的Git仓库结构:

MyProject 
     ¦-> Microservice1 
     ¦    ¦-> src/main/java/... 
     ¦    ¦-> src/main/docker/Dockerfile 
     ¦ 
     ¦-> Microservice2 (etc.) 
     ¦-> Microservice3 (etc.) 
     ¦ 
     ... 
     ¦-> Jenkinsfile 

我如何检测其微服务项目,以仅这些项目执行德管道进行了更新的jenkinsfile里面?

回答

0

我不知道你是否不知何故通过蓝海UI限制你自己,但是如果你通过传统的UI设置了一个管道作业,那么要运行的jenkins文件就是一个参数。

实际上,整个场景非常灵活,比它首次出现的要多得多。我维护一个有大约20个相互依赖模块的系统。我有几种不同的构建触发器方案,具体取决于是否要构建隔离模块或重建相关模块,以及作业是从gitlab(我们使用的)还是手动触发的。我不想在每个回购中维护多个副本。

我发现我可以做的是有另一个包含詹金斯的东西 - 它是一个共享库,以及包含几个有效的Jenkinsfile和我通过load()使用的子脚本。 Jenkins文件加载相关的真实回购并执行相应的构建作业。