Использование строкового параметра в разделе «Выполнить команду оболочки» Jenkins

1

У меня есть строковый параметр, настроенный для задания jenkin с именем "Job_Name".

Я хочу проверить значение, которое передается параметру в разделе "выполнить команду оболочки" jenkins.

Моя текущая команда оболочки приведена ниже в данной картинке.

Изображение 174551

Команда оболочки:

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 работало должным образом. Пожалуйста, порекомендуйте.

Теги:
deployment
jenkins
jobs

2 ответа

3
Лучший ответ

У вас есть несколько причин исправить

Нажмите ссылку под своей оболочкой, чтобы увидеть доступные переменные среды

Это некоторые из моих

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
2

$JOB_NAME - это сгенерированная переменная Jenkins. Его нельзя перезаписать.

У вас не может быть строкового параметра с именем $Job_Name. Дайте ему другое имя, которое не зарезервировано Дженкинсом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню