Git-тег в пакетной команде windows Jenkins не распознает переменную среды SHA - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть задание Jenkins под названием Git_Tag_Test со следующей конфигурацией задания: 1) сборка с параметрами: SHA и имя тега являются строковыми параметрами 2) git scm
3) пакетная команда для пометки ветви.

Это задание Git_Tag_Test вызывается из конвейера jenkins после шагов развертывания prod.Задание Git_Tag_Test успешно выполняется, когда я вручную ввожу параметры SHA и имени тега, не передавая его в качестве переменных.Проблема в том, что когда я вызываю работу из конвейера с именем SHA и именем тега в качестве переменных, SHA не распознается.

Вот как выглядит пакетная команда:

echo %Tag_Name%
echo %SHA%
git tag -f -a %Tag_Name% %SHA% -m "Test tag"
git push --tags origin

Вот вывод из тега git.

C:\Program Files (x86)\Jenkins\workspace\Git_Tag_Test>echo 2.10.6928.18660 
2.10.6928.18660

C:\Program Files (x86)\Jenkins\workspace\Git_Tag_Test>echo 9e47b72e6   
9e47b72e6

C:\Program Files (x86)\Jenkins\workspace\Git_Tag_Test>git tag -f -a 
2.10.6928.18660

Vim: Warning: Output is not to a terminal  
Vim: Warning: Input is not from a terminal  
7[?47h[27m[24m[0m[H[J[24;1H<ogram Files 
(x86)/Jenkins/workspace/Git_Tag_Test/.git/TAG_EDITMSG"
<86)/Jenkins/workspace/Git_Tag_Test/.git/TAG_EDITMSG" [unix] 5L, 
93C[2;1H[1m[36m#
# [0m[1m[34mWrite a message for tag:[0m
[1m[36m#   2.10.6928.18660
# Lines starting with '#' will be ignored.[0m
[1m[34m~                                                                               
[7;1H~                                                                               
[8;1H~                                                                               
[9;1H~                                                                               
[10;1H~                                                                               
[11;1H~                                                                               

Эхо показывает имя тега, а SHA распознается путем передачи переменных, но при запуске команды тега git переменная SHA не выводится.

Примечание: «Обрезать строку» отмечен для конфигурации параметров строки.

В чем именно проблема?Я искал всюду по этой проблеме и пытался отлаживать это в течение нескольких месяцев.

1 Ответ

0 голосов
/ 21 декабря 2018

Из вашего лога консоли действительно выглядит, как Vim открывается во время выполнения скрипта.

Теперь в соответствии с man-страницей тега git (выделение добавлено) https://linux.die.net/man/1/git-tag:

Если передается один из -a, -s или -u, команда создает объект тега и требует сообщения тега. Если не указан ключ -m или -F, пользователь запускает редактор для ввода сообщения тега.

Так или иначе, похоже, что ваша команда искалечена раньшеон достигает флага -m.

  • Может быть, в ваших параметрах скрыт символ новой строки?Попробуйте выполнить некоторую ручную очистку в сценарии (для этого может быть проще использовать Powershell).
  • Попробуйте переместить флаг -m ранее в команде и оставить параметр проблемы до самого конца?git tag -f -m "Test tag" -a %Tag_Name% %SHA%

Кстати, я должен признать, что я предполагаю здесь.Извините, если вы уже попробовали это.

...