Jenkins声明式管道中的参数可以是动态的吗?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)
}
...
}
编辑 我结束了使用jenkins-job-builder
,具有广泛选择的参数。它不支持在目前的groovyScript
参数,所以我修改了它https://review.openstack.org/#q,I0c6ac0b49c24b8d3afbc06b003847de2e043c2b8,n,z
它只是不会立即改变,或者它永远不会改变(在应该更改之后,您运行构建了多少次)?我想我已经看到它在第一次运行时不会生效。 – burnettk
它永不改变。每次使用参数单击构建时,我都会得到完全相同的选项,尽管我知道脚本返回不同的选项(手动运行时)。 – jarondl
每次构建运行时都可以重新定义参数。没有建立,没有重新定义。 –