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
每次構建運行時都可以重新定義參數。沒有建立,沒有重新定義。 –