2017-12-06 9 views
0

内側から地球環境変数を定義します。しかし、ステージで環境{}ディレクティブを使用すると、他のステージにアクセスできなくなります。当初、私は私がトップ環境ディレクティブのデフォルト値でそれらすべてを定義し、パイプラインでそれらを上書きすることができると思ったが、これは私が観察された行動である:は、私はENVは、パイプラインの上部にある私の環境ディレクティブで定義されたVARいる段階

  1. 環境ブロックにVARを定義
  2. {スクリプトで上書きするようにしてください}のようなブロック:script {env.var1 = 'new value'}
  3. ENVは、私はENVSを変更するにはどうすればよい

が上書きされませんか?

答えて

0

あなたは次のようにそれを行うことができます。

  1. がステージ環境あなたが環境内の他のステージと変化する値で同じVARにアクセスすることができ
  2. {env.var1 =「値」}でVARを定義{ENV .var1 = 'value2の'}

    pipeline { 
        agent any 
        environment { 
        var1 = 'value' 
        } 
    
        stages { 
        stage('Initialize') { 
         steps { 
         script { 
         echo ("value : " + env.var1) 
         } 
         } 
        } 
    
        stage('build') { 
         environment { 
         var1 = 'value2' 
         } 
         steps { 
         script { 
          echo ("value : " + env.var1) 
         } 
         } 
        } 
        } 
    } 
    
+0

ではなく、環境のあなただけ使ってスクリプト{} {}。環境{}変数がスクリプト{}に上書きできないのはなぜですか? – red888

+0

環境変数はスクリプト{}内から変更することはできません。環境変数{}内からのみ変更できます。 – TrafLaw

+0

私は自分の答えを更新しました。 – TrafLaw

関連する問題