Jenkins常见问题集锦(三)


问题11:Pipeline脚本里怎么触发其他Jenkins任务?

参考:有一个build步骤,可以研究一下,支持同步或异步触发。

问题12:有没有方便的方法看Jenkins上当前安装的插件列表和版本?插件管理-已安装里可以看到,但是复制下来有多余的信息,不好处理。比如多了插件简介,复制到表格里还要手动一个个删除。

参考:系统管理-系统信息,最下面有个插件章节可以看到,只有名称、版本和启用状态三列。

问题13:不同分支要有不同的处理动作,用Pipeline怎么写?

参考:

when {
    branch 'xxx'
}
steps {
    echo 'do something'
}

问题14:Pipeline的共享库怎么用?

参考:Pipeline脚本写多了,虽然每个任务会有不同,但是有很多公共或类似的部分,这样重复写就没有必要。一个是重复劳动,二是因为每次都要手写,有可能写错还要再调试找原因。共享库就是可以把这些公共的方法提取出来,供各个Pipeline任务使用。目前做Jenkins相关工作的很多都不是开发出身,没有开发经验。这种形式其实类似编程语言的库的概念,就是把一些通用的方法提取出来,变成传参调用,属于代码复用的范畴。目前来说共享库的用法主要有两种,一种是把Pipeline的内容全部用共享库来生成,Jenkinsfile里面就写一行语句调用就行;一种是Pipeline的主框架还是写在Jenkinsfile里,共享库里只是实现一些自定义的单个步骤。另外多说一句,目前大多数人刚刚起步转Pipeline,Jenkinsfile自己写,共享库也是自己为了省事提取一下公共方法,会形成一个“共享库都是要自己写”的先入为主的观念,这个也不是这样的。其实只要有合适的,其他人的库完全也可以使用。这就和编程语言的第三方库一个意思。编写Pipeline共享库需要有Groovy编程语言的知识(Pipeline也不是纯粹的Groovy语言,限于篇幅,不细说),好好学习一下。少年,现在你也是一名开发人员了!

问题15:脚本式Pipeline里面怎么使用post方法?

参考:post只能在声明式Pipeline里使用,脚本式Pipeline里面是使用最原始的try...catch...方式来捕获异常。一般如无特殊需要,建议使用脚本式Pipeline,门槛低一些。

本文首发在我的微信公众号“左手编程右手文化”上,公众号ID:shanyshanb,欢迎关注。


 关注微信公众号

DevOps持续交付公众号ID:devopscd