Передать переменную Jenkins в сценарии Ruby - PullRequest
0 голосов
/ 25 октября 2018

В настоящее время я пытаюсь повторить имя пользователя, который запускает сборку, используя

$ BUILD_USER_ID

из плагина user vars, но оттуда яЯ не уверен, как передать это в мои сценарии ruby, я сделал это в пакетной команде:

set USER = $ BUILD_USER_ID

, и это то, что яесть в моем файле ruby:

ENV ['USER']

Но он возвращает странную связку букв, которая, как мне кажется, является именем пользователя в подчиненном узле iЯ использую для запуска задания.

Есть ли что-то, что мне не хватает?

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете объединить ваш плагин с плагином envinject для добавления переменных среды в вашу работу Jenkins.

Я создал задание jenkins и установил оба плагина.Я поставил галочку напротив «Установить переменные сборки пользователя jenkins».Я также отметил: «Внедрить переменные среды в процесс сборки» и определить внутри «Свойства содержимого»:

USER = $BUILD_USER_ID

Это создаст новую переменную среды USER с содержимым содержимогопеременная BUILD_USER_ID (которая создается плагином env пользователя).

Для проверки:

Я создал файл file.rb, который содержит мой код ruby ​​для печати переменной среды (только вракушка).

# write script
echo "#!/usr/bin/env ruby" > file.rb
echo "# Print some variables" >> file.rb
echo "puts ENV['BUILD_USER_ID']" >> file.rb

# execute script
ruby file.rb

Вывод:

[EnvInject] - Injecting as environment variables the properties content 
USER=$BUILD_USER_ID

[EnvInject] - Variables injected successfully.
[test] $ /bin/sh -xe /tmp/jenkins3544234152865572985.sh
+ echo #!/usr/bin/env ruby
+ echo # Print some variables
+ echo puts ENV['USER']
+ ruby file.rb
admin
Finished: SUCCESS
...