Jenkins共享库-为options部分创建一个通用函数

时间:2018-07-09 13:51:18

标签: jenkins jenkins-pipeline jenkins-shared-libraries

我想扩展共享库的用法-想添加一个包含管道所有选项的函数:

options {
        disableConcurrentBuilds()
        timestamps()
        timeout(time: 30, unit: 'MINUTES')
        buildDiscarder(logRotator(numToKeepStr: '30'))
    }

所以在我的管道中,我将得到

pipeline {
   agent any

   pipelineOptions()

   stages {
       stage('phase1') { 
           steps {               
               sh 'echo Hello World '
           }
       }
   }
}

尝试了类似的方法,但没有成功

//pipelineOptions.groovy
def call() {
        options {
                disableConcurrentBuilds()
                timestamps()
                timeout(time: 5, unit: 'MINUTES')
                //buildDiscarder(logRotator(numToKeepStr: ' params.history'))
                buildDiscarder(logRotator(numToKeepStr: ' 5'))
        }

}

找不到方法...,有可能吗?

1 个答案:

答案 0 :(得分:2)

今天不可能在共享库中定义声明性管道的sections / directives。来自documentation

  

到目前为止,只能在共享库中定义整个管道。这只能在vars/*.groovy中完成,并且只能在call方法中完成。单个构建中只能执行一个声明性管道,如果尝试执行第二个声明性管道,则结果将失败。