jenkins+gitlab+maven 如何触发指定子项目构建

2021-07-06 17:51:00 +08:00
 lamesbond

git 上一个 java 工程有好几个子工程,要是开发只改了一个子工程的代码然后 push,触发 jenkins 构建,这个项目的所有子工程都构建了一遍了。我想过每个子工程配一个 jenkins job,但是所有的 job 会被同时触发。求大佬指点。怎么才能开发改了子工程的代码就只构建那几个子工程

1867 次点击
所在节点    git
8 条回复
heheda11
2021-07-06 18:17:23 +08:00
install 你想要构建的模块不就行了?
yzding
2021-07-06 18:21:20 +08:00
每个子工程拆分成对应分支开发,就是开发切换麻烦了点
NizumaEiji
2021-07-06 19:27:06 +08:00
gitlab-ci 的 only changes?
shyling
2021-07-06 19:31:46 +08:00
一般 ci 都是全新的构建吧。

如果你的子项目之间没有依赖,不太理解为什么放在一起。

如果有依赖,那怎么只构建改动的了的呢,加 build 缓存?
lamesbond
2021-07-06 21:45:34 +08:00
@shyling 我也很无奈,项目 4 年转手 5,6 次了,现在接手的还是个新人,十几个子项目只有一半能用,但是其他的不敢删不敢动
akira
2021-07-06 22:40:34 +08:00
@lamesbond 这种情况就别折腾了,能跑就啥都重要
daliu
2021-07-07 20:18:57 +08:00
弄个.env ,然后在 ci 里面加载这个文件。里面有你想要编译的 module 。当你想触发编译的时候,提前修改这个.env 。mvn -pl modulename -am
lamesbond
2021-08-31 17:02:09 +08:00
gitlab 的 webhook 的 request body 里有这个东西:
"modified": [
"platform-gateway/Jenkinsfile"
],
可以在 jenkinsfile 里解析 json,获取 modified 参数,就知道哪个子模块修改了,然后做 if else

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/787936

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX