2016-12-01 8 views
0

shコンテキストのshコンテキストからjenkins piplineジョブのgroovyコンテキストに変数をエクスポートするにはどうすればよいですか?jenkinsパイプラインでshからgroovyに変数をエクスポートするにはどうすればいいですか?

パイプラインコード:

node { 
    echo 'Hello World' 
    sh 'export VERSION="v$(date)"' 
    echo env.VERSION 
} 

outupt:

[Pipeline] sh 
[test-pipeline] Running shell script 
++ date 
+ export 'VERSION=vThu Dec 1 12:14:40 CET 2016' 
+ VERSION='vThu Dec 1 12:14:40 CET 2016' 
[Pipeline] echo`enter code here` 
null 

私はジェンキンス版を使用しています。 2.34

更新: 変数を一時ファイルに書き込んで後で読み込む可能性があります。これは完全に私のハックのように見えます。並列ビルドを使用する場合、デフォルトでは「スレッドセーフ」ではなく、複数の変数を1回の実行でエクスポートする必要がある場合にはスケールされません。これを行う適切な方法はありますか?

+0

重複? http://stackoverflow.com/questions/40629924/change-groovy-variables-inside-shell-executor-in-jenkins-pipeline/40637578#40637578 – MaTePe

+0

ありがとうございます、これは私が欲しかったものです! –

答えて

0

私はこれが役に立ちそうです。

node('master'){ 
    stage('stage1'){ 
    def commit = sh (returnStdout: true, script: '''echo hi 
    echo bye | grep -o "e" 
    date 
    echo lol''').split() 



    echo "${commit[-1]} " 

    } 
} 
関連する問題