2

基本上我想我Jenkinsfile看起来是这样的:我可以在共享库中定义和参数化整个声明式管道吗?

@Library('my-descriptive-pipline') _ 
myPipeline('arg1','arg2','arg3') 

然后我的共享库(/vars/descriptivePipeline.groovy)是这样的:

pipeline { 
    agent any 
    options { 
     skipDefaultCheckout() 
    } 
    environment { 
    } 
    stages { 
     stage('stageA') { 
      steps { 
       ... Do something with arg1, arg2 or arg3 
      } 
     } 
     stage('stageB') { 
      steps { 
       ... Do something with arg1, arg2 or arg3 
      } 
     } 
    .... 

我想集中管道配置,所以我不必担心詹金斯文件蔓延。这是可能的声明管道?

回答

2

从声明式管道1.2开始,现在可以在共享库中定义整个管道。

你可以找到更多herehere

1

不,目前无法共享完整的声明式管道。这可能的脚本管道:

开始报价: “的声明选项是好的,但你将失去通过共享库中提取出可重用代码的能力。例如,你不能做到这一点尚未:从的Cuong陈德良

MyCompanyStandardPipeline { 
    ... // which will plugin standard sections... 
} 

最终报价在jenkins users mailing list

您可以使用共享库或者Jenkinsfile变种,作为连接线的下一答复指出,但只有脚本可以共享一个完成管道。

+0

我可以在脚本管道中发布操作吗?我认为这只是为了声明权利? – red888

+0

'post'节是一个声明性的东西,但是你可以通过在Jenkinsfile中继续写更多的代码来在脚本管道中执行相同的操作。 :d – burnettk

1

由于shared libraries plugin documentation状态:

定义声明管道

与声明1.2开始,在9月下旬,2017年发布的,你 可以定义声明管道也在你的共享库中。

这是相当新的,所以可能仍然有一些错误,但它应该工作。不要忘记升级共享库和声明式插件。

相关问题