2017-12-08 23 views
0

以前はasked a questionという環境指令で定義されている変数を上書きする方法についてはこれが不可能だと思われます。宣言型パイプラインでグローバル変数をどのように扱いますか?

変数を1つのステージに設定し、他のステージからアクセスできるようにしたいとします。 宣言型パイプラインでは、これを行う唯一の方法はスクリプト{}ブロック内にあるようです。

たとえば、チェックアウト後にいくつかのヴァースを設定する必要があります。だから、チェックアウト段階の終わりに、私はそれらのヴァールを設定し、他の段階でアクセス可能なスクリプト{}ブロックを持っています。

これは機能しますが、間違っています。また、わかりやすいように、これらの変数をパイプラインの先頭に宣言して上書きすることをお勧めします。つまり、冒頭に "変数の設定"段階があり、それはちょうど醜い部分を定義するスクリプト{}ブロックです。

私は確かに私はここに明らかな機能が欠けていると確信しています。宣言型パイプラインにはグローバル変数機能がありますか、スクリプト{}を使用する必要があります

+1

あなたは 'pipeline'定義の外で' def myVar'のようなものを使ってみましたか? – mkobit

答えて

0

@mkobitと同様に、変数をパイプラインブロック外のグローバルレベルに定義できます。あなたはそれを試しましたか?

def my_var 
pipeline { 
    agent any 
    stages { 
     stage('Example') { 
      steps { 
       my_var = 'value1' 
      } 
     } 

     stage('Example2') { 
      steps { 
       printl(my_var) 
      } 
     } 

    } 
} 
関連する問題