如何正确使用Jenkins管道`选项`

时间:2017-01-26 22:59:22

标签: jenkins groovy jenkins-pipeline

代码段生成器为我创建了一个properties块。首次报道

WorkflowScript: 1: The properties section has been renamed as of version 0.8. Use options instead. @ line 1, column 1.
   pipeline {

properties替换为options会导致以下错误:

Errors encountered validating Jenkinsfile:
WorkflowScript: 4: options can not be empty @ line 4, column 5.
   options([$class: 'ThrottleJobProperty',

以下是完整的jenkinsfile供参考

pipeline {
    agent any

    options([[$class: 'ThrottleJobProperty',
            categories: ['xcodebuild'],
            limitOneJobWithMatchingParams: false,
            maxConcurrentPerNode: 0,
            maxConcurrentTotal: 0,
            paramsToUseForLimit: '',
            throttleEnabled: true,
            throttleOption: 'category']])

    stages {
        stage("Empty" {
            steps {
                echo "Do nothing"
            }
        }
    }
}

1 个答案:

答案 0 :(得分:5)

TLDR

在选项

中不再可以使用自定义$class
  

请注意,[$class: 'Foo', arg1: 'something', ...]语法不能使用,只能使用booleanParam(...)等。

完整选项语法

  • 描述:传统JobProperty,例如buildDiscarderdisableConcurrentBuilds,声明式特定选项,例如skipDefaultCheckout和“包装器” “它应该包装整个构建,例如timeout
  • 必需:否
  • 仅限:顶级pipeline关闭。
  • 参数:无
  • 关闭:是
  • 关闭内容:一个或多个声明性选项或作业属性配置的序列,使用构造函数的@Symbol名称。
    • 请注意,[$class: 'Foo', arg1: 'something', ...]语法不能使用,只能使用booleanParam(...)等。
    • 请注意,此处不能直接使用parameterspipelineTriggers @Symbol

示例:

options {
    buildDiscarder(logRotator(numToKeepStr:'1'))
    disableConcurrentBuilds()
}

Source