2015-11-02 7 views
0

Я унаследовал сервер Jenkins, поэтому я пытаюсь определить цель условного шага сборки, который неисправная:

enter image description here

Запуск сборки производит это исключение:

Exception caught evaluating condition: [org.jenkinsci.plugins.tokenmacro.MacroEvaluationException: Unrecognized macro 'GitLastCommit' in '${GitLastCommit}!=e2859cd109f46e889da99391f149ea68c20b1c75'], action = [Don't run] 

Таким образом, значение GIT_COMMIT заполняется, но GitLastCommit не быть заполнены.

Поскольку это не работает, мне интересно, как действовать дальше.

  1. В чем цель проверки этого?
  2. Если я должен сохранить его, то как я могу гарантировать, что GitLastCommit получает правильное значение?
+0

Вы можете ввести переменную окружения GitLastCommit и назначить требуемое значение в начале. –

+0

Да, это правда, но я не уверен, что это за значение. – kraftydevil

+1

Тогда вы не можете использовать это .. !!! В качестве альтернативы, вы можете запустить скрипт python/perl в процессе предварительной сборки, который извлекает последний, но один идентификатор фиксации из репозитория и создает переменную среды GitLastCommit и присваивает значение. Итак, когда этот шаг будет запущен, он будет иметь значение. –

ответ

0

Дженкинс не получил значение для переменной GitLastCommit, и именно по этой причине вы получили вышеуказанную ошибку.

Кроме того, что вы можете сделать, это запустить следующую команду в питоне,

git log --pretty="%H" 

вышеприведенная команда в основном дает все совершают идентификаторы текущего хранилища.

Вы можете либо поместить в список (python).

Используйте модуль Os в питоне, чтобы создать новые переменные среды с именем GitLastCommit,

os.environ["GitLastCommit"] = <<Assign the required value from the list depending on your requirement>> 

А затем inject this environment переменным, так что вы можете использовать это значение еще где.

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

  • Нет связанных вопросов^_^