2017-06-07 12 views
4

私のjenkinsfileにはいくつかのパレメーターがあります。パラメータを更新したり(SCMに新しい入力を追加するなど)、SCMに変更をコミットするたびに、ジェンキンに応じてジョブ入力画面が更新されることはありません。実行してキャンセルし、更新されたフィールドを表示してくださいjenkinsにjenkinsfileを再ロードさせるにはどうすればいいですか?

properties([ 
    parameters([ 
    string(name: 'a',  defaultValue: 'aa',  description: '*',), 
    string(name: 'b', description: '*',), 
    string(name: 'c',  description: '*',), 
    ]) 
]) 

手がかりはありますか?

+0

同じ問題を:(見つけるために、まだ私が追加autobuilds働い避けるために、「トリガー自動SCMを抑制します」 です。 - あまりにも良い - 今では "Scan Multibranch Pipeline Now"が無効になっており、ブランチを "再スキャン"することができなくなったので... – eventhorizon

+0

最後に、選択パラメータに「デフォルト」(最初のエントリ)を追加し、最初の/すべての段階で...悪いが作業中の回避策... – eventhorizon

+0

次の問題が重要になる可能性があります - これまで実装されていた場合 - https://issues.jenkins-ci.org/browse/JENKINS-38442 – eventhorizon

答えて

2

私はこれを回避するためにやった醜いことの一つは、基本的にはすぐにパイプラインを出てRefreshパラメータを作成しています。このようにして、プロパティを更新するだけでパイプラインを実行できます。

pipeline { 
    agent any 
    parameters { 
     booleanParam(name: 'Refresh', 
        defaultValue: false, 
        description: 'Read Jenkinsfile and exit.') 
    } 
    stages { 
     stage('Read Jenkinsfile') { 
      when { 
       expression { return parameters.Refresh == true } 
      } 
      steps { 
       echo("Ended pipeline early.")   
      } 
     } 
     stage('Run Jenkinsfile') { 
      when { 
       expression { return parameters.Refresh == false } 
      } 
      stage('Build') { 
       // steps 
      } 
      stage('Test') { 
       // steps 
      } 
      stage('Deploy') { 
       // steps 
      } 
     } 
    } 
} 

は本当に良い方法があるに違いありませんが、私は...それがここに

0

ジョブプロパティを更新するためにJenkinsfileを実行する必要があるため、新しいファイルでビルドを開始する必要があります。

+0

あなたに基づいて経験、任意のsu ggestion/trickを念頭に置いてですか?例えば私はjenkinsfileに応じてたくさんの仕事をしたいと思っているので、これらの仕事のそれぞれに更新したパラメータを再ロードするように伝える方法が必要です。個々のタスク。 – NicolasW

関連する問題