2014-02-21 3 views
0

Дженкинс на Cloudbees - У меня есть 2 оболочки сценариев:

1 - Наборы $PATH включить

/scratch/jenkins/addons/ruby/ruby-2.0 0,0-P247-x86_64/бен

2 - вторит $PATH

From script 1: + /scratch/jenkins/addons/ruby/ruby-2.0.0-p247-x86_64/bin:/scratch/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/nodeJS_Install/bin:/opt/jdk/latest/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/opt/maven/latest/bin:/opt/ant/latest/bin:/opt/android/android-sdk-linux/tools:/opt/gradle/latest/bin:/home/jenkins/bin:/opt/jdk/jdk.latest/bin 
+ sh/echo_path.sh 
From script 2: + /scratch/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/nodeJS_Install/bin:/opt/jdk/latest/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/opt/maven/latest/bin:/opt/ant/latest/bin:/opt/android/android-sdk-linux/tools:/opt/gradle/latest/bin:/home/jenkins/bin:/opt/jdk/jdk.latest/bin 

Как вы можете видеть, сценарий 2 потерял рубиновую запись, выполненную сценарием 1, до $PATH. Почему это происходит и может быть остановлено, поскольку оно влияет на шаги сборки дальше по прямой?

ответ

0

Я думаю, что лучше всего использовать плагин envinject для установки этой переменной окружения для всей сборки. Шаги сборки сценариев Shell - это просто обычные сценарии оболочки. Они не могут экспортировать переменные среды в родительский процесс.

+0

Спасибо, но проблема в том, что я устанавливаю рубин & компас из сценария оболочки, как они должны использоваться в построении градиента дальше по цепочке, поэтому плагин envinject не поможет, так как каждый раз в облачных средах каждый рубин настраивается каждый раз. – Ian

+0

Я понимаю, что Ruby & compass устанавливаются скриптом оболочки, но поскольку вы знаете их пути раньше времени, я не понимаю, почему вы не можете добавить их в $ PATH. – recampbell

+0

@thanks для вашего ввода, но абсолютный ref - это вариант, который я искал, чтобы избежать (либо с помощью вашего метода в сценариях вниз по потоку), потому что, если облачные облака должны были что-то менять, он нарушает процесс сборки - больше желающих добраться до дно о том, почему это происходит .. – Ian

1

Вы можете использовать плагин EnvInject для первоначально запрошенной цели. От its wiki:

Чтобы придать переменные в качестве шага сборки, полученного из файла заполненного на предыдущем этапе сборки

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