请教熟悉 jenkins 的大佬 能否构建一个 jenkins 项目 当 gitlab 上 A 仓库的代码更新后 自动拉取 B 仓库的代码然后执行构建

2019-03-16 21:23:24 +08:00
 kblacksheep

大概场景是这样:开发的代码放在 A 仓库,当开发推了新代码到仓库上后,触发 Jenkins 项目的 WebHook,然后拉去位于 B 仓库的测试代码执行一遍,B 仓库的代码测试通过后,再执行后续操作

2166 次点击
所在节点    问与答
14 条回复
a663
2019-03-16 22:15:03 +08:00
在 jenkins 里面 clone B 的代码,执行
LeoQ
2019-03-16 23:21:23 +08:00
一楼的方案没毛病,不过有没有考虑把测试代码和开发代码放一个库里?
因为你这样设置的话,需要配置两个库的关联关系,除非测试库的代码都是一样的。
kblacksheep
2019-03-16 23:37:53 +08:00
@LeoQ 只是一种想法 因为现在公司里开发人员的代码和测试人员的代码是分开来维护的 在这方面的协作不算很多
awanabe
2019-03-17 00:36:25 +08:00
把 B 项目作为子模块放在 A 项目里面咯..这样 repo 是独立的
WispZhan
2019-03-17 00:40:23 +08:00
pipeline。
Jenkins pipeline 或者 gitlab pipeline
反正都是写脚本就是。
Mithril
2019-03-17 01:04:28 +08:00
@kblacksheep 直接用 Pipeline,或者用 TC 的话配置 Dependencies。
但不管哪种都不是很好,建议直接用 Gradle 或者其他 Build Automation 工具,在这些工具里面配置 Task 一类的东西去执行 Clnoe B,编译并测试的工作。
总而言之,尽量少把这些 Build 流程配置写在 CI 工具上。CI 最好只是单纯的触发器,拉代码,然后执行你的 Build Automation 脚本。而你的脚本应该能完整的执行构建,测试甚至发布功能。
tomczhen
2019-03-17 01:11:32 +08:00
做两个 job,A 仓库触发 B Job,然后 B Job 执行后根据条件触发 A Job。
ymj123
2019-03-17 01:54:29 +08:00
pipeline 可以调用 shell 脚本,Python 脚本。想怎么写都行啊。
ymj123
2019-03-17 01:55:13 +08:00
pipeline 自己也可以,groovy 写。
also24
2019-03-17 02:42:35 +08:00
有点儿懵,这个好像直接用最简单的模式就行吧 =。= 似乎连 Pipline 都用不到额?

在 git 仓库 A,配置 webhook,指向 jenkins 上相应 job 的 webhook 地址;
然后 jenkins 上相应 job 的 “源码管理” 部分配置为 B 仓库不就可以了嘛?

also24
2019-03-17 03:00:52 +08:00
补充一下,如果是需要同时用到 A 仓库和 B 仓库的代码,就需要自己写 Pipeline 了。

如果实在懒得写,其实也可以通过插件来达到简单的拖多仓库源码的目的~~~
https://wiki.jenkins.io/display/JENKINS/Multiple+SCMs+Plugin
(你看,这插件专门在首页喊你去用 Pipeline 哈哈哈哈)

kblacksheep
2019-03-17 09:20:04 +08:00
@also24 这种最简单的话。如果 b 仓库的更新了又不会触发拉取更新。。我是想 ab 任一仓库更新后可以都会拉取 b 仓库里的代码然后执行
kblacksheep
2019-03-17 09:20:29 +08:00
@also24 谢谢 这个我去看下
also24
2019-03-17 12:02:07 +08:00
@kblacksheep 那更简单了… B 仓库的 webhook 也配置到同一个 job 就行了

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

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

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

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

© 2021 V2EX