我正在使用Jenkins
管道(groovy
语法)。
我有多个项目,并且想与所有项目共享一些代码。
是否可以在远程服务器上的文件中定义一个功能,然后下载该文件,导入该功能并执行它?
例如,在名为Jenkinsfile
的项目上使用cicd
。在另一个项目(例如core
)中,Jenkinsfile从jenkinsfile项目sharedFunction
执行cicd
。
答案 0 :(得分:0)
不完全是。但是,您可以在groovy中定义一组函数并将其加载到jar中,然后“批准”该jar(安装到Jenkins中)作为一组已批准的函数,以便它们可以在Jenkins管道作业中运行。
查找“全局管道库”-这是“配置Jenkins”页面中的条目(您必须能够管理Jenkins,否则必须说服Jenkins管理员批准您的库。)其描述为“可共享库这些库将受到信任,这意味着它们不受“沙盒”限制,并且可以使用@Grab。”
这相对简单,但是我建议您在完全控制的位置安装自己的Jenkins,并可以创建和播放“ Hello,World!”。功能,因此您可以查看安装生产功能所涉及的步骤。由于我没有管理Jenkins,因此我需要功能(而现在还没有功能),因此通过本地演练可以向管理员准确描述我的“祝福”请求中需要的内容,他们似乎对此表示赞赏。
有关说明和设置,请参见https://jenkins.io/doc/book/pipeline/shared-libraries/。
答案 1 :(得分:0)
以下用于运行远程服务器中托管的groovy代码的管道代码片段。
node {
git url : 'git@our.repo.host.com:somepath/reponame.git'
load 'script/jenkins/createTag-pipeline.groovy'
}