あなたの最初の仕事は、最近ビルドされたイメージタブ(1行に1つ)のリストで環境変数を設定することです。
declarative pipeline environment
directiveを参照してください。選択パラメータリストを構築するのに十分でなければならない
#!/bin/groovy
def envs = loadEnvs();
properties([
parameters([
choice(choices: envs, description: 'Please select an image tag', name: 'Env')
])
])
:
次に、以下の「Dynamic Parameter in Jenkinsfile?」、あなたは次のように外部関数を使用することができます。
「Pipeline: How to manage user inputs」(2週間前に5月10日、2017年には、)Declarative Pipeline syntaxに有効な代替コマンドを示しているが、ない:
あなたはそれを達成するためにinput
ステップを使用する必要があります。最後の部分は、宣言型のパイプラインのためのものであることを
stage 'promotion'
def userInput = input(
id: 'userInput', message: 'Let\'s promote?', parameters: [
[$class: 'TextParameterDefinition', defaultValue: 'uat', description: 'Environment', name: 'env'],
[$class: 'TextParameterDefinition', defaultValue: 'uat1', description: 'Target', name: 'target']
])
echo ("Env: "+userInput['env'])
echo ("Target: "+userInput['target'])
がよろしいです:
は、それはあなたにこのような何かを与えるのだろうか?これは私にスクリプトされたパイプラインのような感じです。 AFAIKでは、変数を宣言的に設定することはできません。また、 'stage'構文は、スクリプト化されたパイプラインから既に廃止されているように見えます。 IMHOは、宣言型パイプラインで 'input'を使用する唯一の方法は' input'を関数に外部化し、それを通常の(ブロッキング)ビルドステップと呼びます。 – StephenKing
'parameters'と' input'の違いは、最初にビルドが開始される前にフィードバックを求め、後者はビルド中にいつでも使用できるということです。 – StephenKing
@StephenKingあなたは正しいですか?私はそれを明確にするために答えを修正しました.DSLのネイティブな直接的な解決策はないようです。 – VonC