
git 上一个 java 工程有好几个子工程,要是开发只改了一个子工程的代码然后 push,触发 jenkins 构建,这个项目的所有子工程都构建了一遍了。我想过每个子工程配一个 jenkins job,但是所有的 job 会被同时触发。求大佬指点。怎么才能开发改了子工程的代码就只构建那几个子工程
1 heheda11 2021 年 7 月 6 日 install 你想要构建的模块不就行了? |
2 yzding 2021 年 7 月 6 日 via Android 每个子工程拆分成对应分支开发,就是开发切换麻烦了点 |
3 NizumaEiji 2021 年 7 月 6 日 gitlab-ci 的 only changes? |
4 shyling 2021 年 7 月 6 日 一般 ci 都是全新的构建吧。 如果你的子项目之间没有依赖,不太理解为什么放在一起。 如果有依赖,那怎么只构建改动的了的呢,加 build 缓存? |
7 daliu 2021 年 7 月 7 日 弄个.env ,然后在 ci 里面加载这个文件。里面有你想要编译的 module 。当你想触发编译的时候,提前修改这个.env 。mvn -pl modulename -am |
8 lamesbond OP gitlab 的 webhook 的 request body 里有这个东西: "modified": [ "platform-gateway/Jenkinsfile" ], 可以在 jenkinsfile 里解析 json,获取 modified 参数,就知道哪个子模块修改了,然后做 if else |