两台不同系统上Jenkins的联动

场景是这样的,有两台jenkins。一台是正常安装在linux上的,另外一台是在macos上的。

在macos上的这台,装了有xcode和android studio,负责ipa和apk的自动打包。

而在linux上jenkins则是主jenkins,负责很多项目的打包。

这样两台的目标就都很明确,麻烦的是需要来回登录来构建项目,那么有没有方法从第一台上直接调用第二台的项目进行构建呢?

image-20240124100017245

当然可以,直接发个带Token的url到第二台就可以。

这个不是本文的重点,本文重点,源码是Git的build过程,jenkins装了Git parameter插件后支持选tag进行building。

这样如果两台都这么来一下,实际是在两台都git check了一下,然后开始build,这对于第一台来说,毫无必要。

第一台主jenkins的任务就是看看git项目中都有什么tag,然后把tag发链接给第二台即可,没必要check的。

而第二台也不去看tag,直接从git中checkout出第一台传过来的tag版本,进行构造,这样最省资源。

那么,怎么让第一台只查看tag呢?

万能的groovy大法:

1def gettags = "git ls-remote -t git@git.coding.net:doabc/app-abc.git".execute()  
2def tags = []  
3def t1 = []  
4gettags.text.eachLine {tags.add(it)}  
5for(i in tags)  
6    t1.add(i.split()[1].replaceAll('\\^\\{\\}', '').replaceAll('refs/tags/', ''))
7t1 = t1.unique()  
8return t1  

注意上面,groovy和git的证书需要都事先配好。


配置postfix转发局域网邮件以及邮件黑洞
F5-Bigip的SSL每秒传输(TPS)限制
comments powered by Disqus