2016-09-19 4 views
0

Я установил некоторые глобальные переменные со значениями по умолчанию и попытался получить к ним доступ с помощью $ {ID}, $ {PRJ}, $ {RELEASE}, но не имел успеха.Установить глобальные переменные в Jenkins

ID -> $ {JOB_NAME} | cut -d '_' -f 1

PRJ -> $ {JOB_NAME} | cut -d '_' -f 2

RELEASE -> $ {JOB_NAME} | вырезать -d «_» -f формат 3

Дженкинс Название работы

ID_PRJ_ RELEASE

Э.Г. 1234_AngularJS_Q1

ответ

0

Используйте нормальные кавычки и назначить с суб-процесса:

ID=$(echo "${JOB_NAME}" | cut -d'_' -f1) 

Вы можете также использовать оболочки внутренностей (избегая вызова вырезать), с

ID="${JOB_NAME//*_}" 
RELEASE="${JOB_NAME//*_}" 

The Prj потребуется 2 шаги или что-то вроде sed. Но перед выполнением этого убедитесь, что PRJ также не будет содержать символы подчеркивания, например. 1235_Hello_World_1.0.

+0

Но до сих пор не удается получить к ним доступ с помощью $ {ID}, $ {PRJ}, $ {RELEASE} из сценариев командной оболочки. – Dmark

+0

Обратите внимание, что эти переменные находятся в разделе «Управление объектами Jenkins> Global Properties» и управляются централизованно. – Dmark

+0

Когда вы устанавливаете значения в скрипте, завершите сценарий и запустите другой скрипт, все настройки первого скрипта будут потеряны. Когда $ {JOB_NAME} доступно в ваших сценариях, вы можете поместить дополнительные назначения в «include-файл» и просто включить этот файл в свой скрипт. Включение выполняется с помощью 'source', что-то вроде' source/usr/local/bin/jenkensutils.inc' как вторая строка вашего скрипта (первая будет '#!/Bin/bash'). Вы можете сокращать «источник» с помощью точки и выбирать другой путь или имя файла (я предпочитаю папку 'shlib'). –

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