2016-12-01 4 views
0

Как можно экспортировать переменную из контекста sh из контекста sh в сложный контекст задания линии дженкинсов?Как экспортировать переменную от 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

обновление: есть возможность записать переменную во временный файл и прочитать ее позже. Это выглядит как хак для меня. Он не является «потокобезопасным» по умолчанию при использовании параллельных сборок и не масштабируется, если вам нужно экспортировать несколько переменных за один проход. Есть ли правильный способ сделать это?

+0

Duplicate? 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]} " 

    } 
} 
Смежные вопросы