2016-01-28 4 views
0

Можно ли передавать переменные окружения, установленные в одном скрипте, другому в Bamboo?Bamboo - передать переменные среды между задачами/сценариями

Например, я настроил Go, как показано ниже, и хотел бы, чтобы последующие задачи (скрипты) имели доступ к PATH и GOPATH, которые я экспортирую здесь.

set -e 

if [ ! -d "go" ]; then 
    wget -q https://storage.googleapis.com/golang/go1.5.linux-amd64.tar.gz 
    tar -xzf go1.5.linux-amd64.tar.gz 
fi 

export GOROOT=$(pwd)/go 

mkdir -p gopath/ 
export GOPATH=$(pwd)/gopath 
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH 

ответ

1

Переменные окружения могут передаваться только от родительских к дочерним процессам. Для того, чтобы получить их в несвязанную программу, вы можете записать их в файл, а затем подключит файл в другом сценарии:

... 
echo export GOROOT=$GOROOT >>$GOROOT/.vars 
echo export GOPATH=$GOPATH >>$GOROOT/.vars 
echo export PATH=$PATH >>$GOROOT/.vars 

Тогда другие сценарии, которые начинаются позже, должны иметь это ближе к началу (при условии, они начинают с их рабочим каталогом в каталоге GOROOT):.

source .vars 

(или добавить его в сценарии, который начинает те другие сценарии)

+0

Привет ребята, Является ли это единственный путь, доступный до теперь ?, Поскольку я искал способ отправить результат одной задачи на следующую задачу, но не смог найти какой-либо способ по умолчанию, предоставленный Bamboo. Может ли кто-то, кто достиг этого успеха, может подробно остановиться на этом ... в контексте последней версии Bamboo CI Server. Любая помощь будет оценена по достоинству. Thnx – crujzo

0

Это было реализовано в среднем в то время как, используя этот плагин, который связан с 5,7: https://marketplace.atlassian.com/plugins/com.atlassian.bamboo.plugins.bamboo-variable-inject-plugin/server/overview

Способ сделать это состоит в следующем:

  • в щёток стадии, есть состояние скрипта сделать что-то вроде:

эхо «MYVAR = $ (кот some_variable_info_file)»>> сборки/docker.properties

  • После этого в переменных Вводят Бамбуковые шаг, установить путь к файлу свойств для указанного выше файла (сборки/docker.properties) и установить пространство имен, скажем докер

  • использовать эту переменную в следующий шаг), как сценарий), можно обратиться к нему, как: $ bamboo_docker_MYVAR так можно сделать

эхо $ bamboo_docker_MYVAR

Это означает, что вы можете все еще использовали filebased подход, просто убедитесь, что данные там имеет тип:

some_key1=some_value1 
some_key2=some_value2 

т.д.

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