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)
}
...
}
EDIT 私は、拡張選択パラメータで、jenkins-job-builder
を使用して終了。これは、現時点ではgroovyScript
パラメータをサポートしていませんので、私は、ユーザー入力について何https://review.openstack.org/#q,I0c6ac0b49c24b8d3afbc06b003847de2e043c2b8,n,z
これはただちに変更されませんか、または変更されません(変更した後にビルドを何回実行しましたか)。私はそれが最初の実行に影響しないことを見てきたと思う。 – burnettk
これは決して変更されません。パラメータを使用してビルドをクリックするたびに、スクリプトがさまざまなオプションを返すことがわかっていても(手動で実行すると)正確に同じオプションが得られます – jarondl
ビルドが実行されるたびにパラメータを再定義できます。ビルドも、再定義もありません。 –