两台不同系统上Jenkins的联动
场景是这样的,有两台jenkins。一台是正常安装在linux上的,另外一台是在macos上的。 在macos上的这台,装了有xcode和android studio,负责ipa和apk的自动打包。 而在linux上jenkins则是主jenkins,负责很多项目的打包。 这样两台的目标就都很明确,麻烦的是需要来回登录来构建项目,那么有没有方法从第一台上直接调用第二台的项目进行构建呢? 当然可以,直接发个带Token的url到第二台就可以。 这个不是本文的重点,本文重点,源码是Git的build过程,jenkins装了Git parameter插件后支持选tag进行building。 这样如果两台都这么来一下,实际是在两台都git check了一下,然后开始build,这对于第一台来说,毫无必要。 第一台主jenkins的任务就是看看git项目中都有什么tag,然后把tag发链接给第二台即可,没必要check的。 而第二台也不去看tag,直接从git中checkout出第一台传过来的tag版本,进行构造,这样最省资源。 那么,怎么让第一台只查看tag呢? 万能的groovy大法: def gettags = "git ls-remote -t git@git.coding.net:doabc/app-abc.git".execute() def tags = [] def t1 = [] gettags.text.eachLine {tags.add(it)} for(i in tags) t1.add(i.split()[1].replaceAll('\\^\\{\\}', '').replaceAll('refs/tags/', '')) t1 = t1.unique() return t1 注意上面,groovy和git的证书需要都事先配好。