Jenkins声明性管道中的参数可以是动态的吗?
我希望在运行时通过函数填充选项选项值.以下代码确实生成了一个选项列表,但它们似乎是陈旧的 - 可能是在我第一次运行此代码时生成的.如果AMI列表发生变化,则选择保持不变.我想在每次选择时运行它build with parameters.
def findAMIs() {
// Find relevant AMIs based on their name
def sout = new StringBuffer(), serr = new StringBuffer()
def proc = '/usr/bin/aws --region eu-west-1 ec2 describe-images \
' --owners OWNER --filter Name=name,Values=PATTERN \
' --query Images[*].{AMI:Name} --output text'.execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(10000)
return sout.tokenize()
}
def AMIs = findAMIs().join('\n')
pipeline {
// a declarative pipeline
agent any
parameters {
choice(name: 'Release',
choices: AMIs)
}
...
}
Run Code Online (Sandbox Code Playgroud)
编辑
我最终使用jenkins-job-builder扩展选择参数.它目前不支持该groovyScript …