2016-03-20 2 views
0

Я новичок в jenkins dsl. Я пытаюсь установить учетные данные как переменную среды, чтобы использовать ее в моем файле. Сначала я определяю учетные данные, которые я хочу использовать в контексте шага, , чем привязывать его в блоке обертки. Проблема в том, что блок-блок выполняется перед блоком шагов, тем самым создавая ошибку учетных данных, которые не найдены. Я не уверен, как я могу установить значения по-другому. любые идеи? Добавил мой код:Jenkins dsl - определить привязку при работе

steps{ 
    shell('if [ "$my-variable" == "new" ]; then\n\ 
cred="new"\n\ 
echo "set cred to new" \n\ 
else\n\ 
cred="old"\n\ 
echo "set cred to old"\n\ 
fi;') 
} 

wrappers{ 
    credentialsBinding{ 
     usernamePassword('userVar', 'passwordVar', '${cred}') 
    } 
} 

steps { 
    shell(fab ${envName} start') 
} 

ответ

0

В вашем скрипте есть две проблемы.

1) Обертки сборки выполняются до любых шагов сборки. DSL позволяет определять шаги и обертки в любом порядке, но задание всегда будет запускать обертки перед шагами.

2) Любые установленные переменные оболочки видны только в шаге оболочки. Переменные Shell не подвергаются воздействию Дженкинса.

Я думаю, что это можно решить без использования первого шага оболочки, но я не уверен, чего вы пытаетесь достичь с помощью этого шага оболочки. Возможно, вам стоит открыть новый вопрос и описать проблему высокого уровня, которую вы пытаетесь решить.