2017-05-23 8 views
1

ドッカーの画像を構築し、gitハッシュでタグ付けするJenkinsパイプラインがあります。私はまた、ドッカー画像の配備のためにいくつかの文字列/選択パラメータを取り入れる別のパラメータ化されたJenkinsパイプラインを持っています。ビルドパイプラインがデプロイメントパイプラインの選択パラメータに文字列を追加するのが大好きです。そのため、ユーザーがデプロイメントパイプラインを実行すると、最近選択した最近正常に構築されたドッカー画像のリストが表示されます。Jenkins Pipelineは別のJenkinsジョブを作成/設定できますか?

誰でもこの方法を知っていますか?

答えて

1

あなたの最初の仕事は、最近ビルドされたイメージタブ(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']) 
+0

がよろしいです:
は、それはあなたにこのような何かを与えるのだろうか?これは私にスクリプトされたパイプラインのような感じです。 AFAIKでは、変数を宣言的に設定することはできません。また、 'stage'構文は、スクリプト化されたパイプラインから既に廃止されているように見えます。 IMHOは、宣言型パイプラインで 'input'を使用する唯一の方法は' input'を関数に外部化し、それを通常の(ブロッキング)ビルドステップと呼びます。 – StephenKing

+0

'parameters'と' input'の違いは、最初にビルドが開始される前にフィードバックを求め、後者はビルド中にいつでも使用できるということです。 – StephenKing

+0

@StephenKingあなたは正しいですか?私はそれを明確にするために答えを修正しました.DSLのネイティブな直接的な解決策はないようです。 – VonC

関連する問題