大概场景是这样:开发的代码放在 A 仓库,当开发推了新代码到仓库上后,触发 Jenkins 项目的 WebHook,然后拉去位于 B 仓库的测试代码执行一遍,B 仓库的代码测试通过后,再执行后续操作
1
a663 2019-03-16 22:15:03 +08:00 via Android 1
在 jenkins 里面 clone B 的代码,执行
|
2
LeoQ 2019-03-16 23:21:23 +08:00 via iPhone
一楼的方案没毛病,不过有没有考虑把测试代码和开发代码放一个库里?
因为你这样设置的话,需要配置两个库的关联关系,除非测试库的代码都是一样的。 |
3
kblacksheep OP @LeoQ 只是一种想法 因为现在公司里开发人员的代码和测试人员的代码是分开来维护的 在这方面的协作不算很多
|
4
awanabe 2019-03-17 00:36:25 +08:00
把 B 项目作为子模块放在 A 项目里面咯..这样 repo 是独立的
|
5
WispZhan 2019-03-17 00:40:23 +08:00 via Android
pipeline。
Jenkins pipeline 或者 gitlab pipeline 反正都是写脚本就是。 |
6
Mithril 2019-03-17 01:04:28 +08:00 1
@kblacksheep 直接用 Pipeline,或者用 TC 的话配置 Dependencies。
但不管哪种都不是很好,建议直接用 Gradle 或者其他 Build Automation 工具,在这些工具里面配置 Task 一类的东西去执行 Clnoe B,编译并测试的工作。 总而言之,尽量少把这些 Build 流程配置写在 CI 工具上。CI 最好只是单纯的触发器,拉代码,然后执行你的 Build Automation 脚本。而你的脚本应该能完整的执行构建,测试甚至发布功能。 |
7
tomczhen 2019-03-17 01:11:32 +08:00
做两个 job,A 仓库触发 B Job,然后 B Job 执行后根据条件触发 A Job。
|
8
ymj123 2019-03-17 01:54:29 +08:00 via Android
pipeline 可以调用 shell 脚本,Python 脚本。想怎么写都行啊。
|
9
ymj123 2019-03-17 01:55:13 +08:00 via Android
pipeline 自己也可以,groovy 写。
|
10
also24 2019-03-17 02:42:35 +08:00
有点儿懵,这个好像直接用最简单的模式就行吧 =。= 似乎连 Pipline 都用不到额?
在 git 仓库 A,配置 webhook,指向 jenkins 上相应 job 的 webhook 地址; 然后 jenkins 上相应 job 的 “源码管理” 部分配置为 B 仓库不就可以了嘛? |
11
also24 2019-03-17 03:00:52 +08:00 1
补充一下,如果是需要同时用到 A 仓库和 B 仓库的代码,就需要自己写 Pipeline 了。
如果实在懒得写,其实也可以通过插件来达到简单的拖多仓库源码的目的~~~ https://wiki.jenkins.io/display/JENKINS/Multiple+SCMs+Plugin (你看,这插件专门在首页喊你去用 Pipeline 哈哈哈哈) |
12
kblacksheep OP @also24 这种最简单的话。如果 b 仓库的更新了又不会触发拉取更新。。我是想 ab 任一仓库更新后可以都会拉取 b 仓库里的代码然后执行
|
13
kblacksheep OP @also24 谢谢 这个我去看下
|
14
also24 2019-03-17 12:02:07 +08:00 via Android 1
@kblacksheep 那更简单了… B 仓库的 webhook 也配置到同一个 job 就行了
|