Jenkins日期参数插件 - 如何在声明性流水线中使用

5
使用声明式流水线中使用日期参数插件的语法是什么?
到目前为止,我尝试过以下内容:
pipeline {
agent {
    node {
        label 'grange-jenkins-slave'
    }
}

options { disableConcurrentBuilds() }

parameters {
    date(name: 'EffectiveDate',
            dateFormat: 'MMddyyy',
            defaultValue: 'LocalDate.now();',
            description: 'Effective Date',
            trim: true)
    file(name:'algo.xlsx', description:'Your algorithm file')
    choice(name: 'currency',
            choices: ['USD'],
            description: 'Select a currency')

}
stages {
    stage('genRates') {
        steps {
            script {
                echo "test"
            }
        }
    }
}

我收到的错误是WorkflowScript:11:参数类型“date”无效。有效的参数类型:[booleanParam,choice,credentials,file,text,password,run,string] @ line 11,column 3。

1
你最终弄好了吗? - Michael Ziluck
2个回答

2
你可以定义参数 作为类 DateParameterDefinition
例子:
properties([parameters([
  string(name: 'somestring', defaultValue: 'somevalue'),
  [$class: 'DateParameterDefinition',
   name: 'somedate',
   dateFormat: 'yyyyMMdd',
   defaultValue: 'LocalDate.now()']
])])

pipeline {
...
}

这个例子的语法是完美的。但是如果你有其他参数,请在复制粘贴时小心逗号。 - Tinmarino
对我来说,只有在不使用默认值的情况下才能正常工作,但这绝对是对这个问题的正确和最有帮助的答案! - Fabian Steiner
对我来说,只有在不使用默认值的情况下才能起作用,但这绝对是对这个问题的正确和最有帮助的答案! - undefined

1

我没有使用日期参数插件,因为我没有找到任何如何使用它的示例。我用了另一种方法解决了这个问题。

import java.text.SimpleDateFormat

def sdf = new SimpleDateFormat("yyyyMMdd")
def dateDefaultValue = sdf.format(new Date())

pipeline {
     parameters {
        string(name: 'SOMEDATE', defaultValue: "${dateDefaultValue}", description: 'Default value is current date in the format YYYYmmdd', trim: true)
    }
    .....
    .....
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接