我正在考虑最近使用Jenkins管道脚本,一个问题是我不知道创建内部可重用utils代码的明智方法,想象一下,我有一个通用功能helloworld,该功能将被许多管道作业使用,所以我希望创建一个utils.jar可以将其注入作业类路径的容器。
helloworld
utils.jar
我注意到詹金斯(Jenkins)在全局库中有一个类似的概念,但是我对此插件的关注是:
由于它是一个插件,因此我们需要通过jenkins插件管理器进行安装/升级,然后可能需要重新启动才能应用更改,这不是我想要的内容,因为utils可能会更改,请始终添加,我们希望可以立即可用。
其次,它是官方的詹金斯共享库,我不想(否则他们将不会应用我们)将私人代码放入詹金斯存储库中。
有什么好主意吗?
该 共享库 (文档),可以使 你的 代码可以访问到所有管道的脚本。您不必为此构建插件,也不必重新启动Jenkins。
例如,这是我的库,这是一个Jenkinsfile,它调用此公共函数。
编辑(2月2017): 库可以通过詹金斯的内部的Git服务器进行访问,或通过其他方式部署(例如,通过厨师)在workflow-lib/该目录内 詹金斯 用户的主目录。(仍然可能,但非常不方便)。
workflow-lib/
可以通过以下方式配置全局库:
@Library('github.com/...')
Jenkinsfile
第一个和最后一个方法的组合将是一个没有明确加载的共享库,那么只有在使用其名称要求Jenkinsfile:@Library('mysharedlib')。
@Library('mysharedlib')