У меня есть строковый параметр, настроенный для задания jenkin с именем "Job_Name".
Я хочу проверить значение, которое передается параметру в разделе "выполнить команду оболочки" jenkins.
Моя текущая команда оболочки приведена ниже в данной картинке.
Команда оболочки:
if [ "${Job_Name}" == "RSProductPreprocessor" ]; then
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i hosts/dev playbook_deployRSProductPreProcessor.yml -v --extra-vars "RSProductPreProcessorVersion=${Number_Of_RSProductPreProcessor_Build_To_Deploy}"
fi
Но я получаю этот ответ, как показано ниже, когда я запускаю работу.
+ '[' '' == RSProductPreprocessor ']'
Finished: SUCCESS
Что нужно сделать для того, чтобы условие if работало должным образом. Пожалуйста, порекомендуйте.
У вас есть несколько причин исправить
Нажмите ссылку под своей оболочкой, чтобы увидеть доступные переменные среды
Это некоторые из моих
BUILD_NUMBER
The current build number, such as "153"
BUILD_ID
The current build id, such as "2005-08-22_23-59-59" (YYYY-MM-DD_hh-mm-ss)
BUILD_DISPLAY_NAME
The display name of the current build, which is something like "#153" by default.
JOB_NAME
Name of the project of this build, such as "foo" or "foo/bar". (To strip off folder paths from a Bourne shell script, try: ${JOB_NAME##*/})
Таким образом, вам нужно ${JOB_NAME}
все в столицах
И сравнение в оболочке
if [ "${JOB_NAME}"="xxxx" ]; then
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i hosts/dev playbook_deployRSProductPreProcessor.yml -v --extra-vars "RSProductPreProcessorVersion=${Number_Of_RSProductPreProcessor_Build_To_Deploy}"
fi
Таким образом, только один =
Ваш Дженкинс может использовать другую оболочку для моего, чтобы вы могли заставить bash, добавив shebang в первую строку
#!/bin/bash
$JOB_NAME
- это сгенерированная переменная Jenkins. Его нельзя перезаписать.
У вас не может быть строкового параметра с именем $Job_Name
. Дайте ему другое имя, которое не зарезервировано Дженкинсом.