Конвейер Jenkins "Спецификатор ветвления" не оценивает переменные - PullRequest
0 голосов
/ 13 апреля 2020

Задание переменной среды для «Спецификатора ветви» является документированным вариантом, но когда я это делаю, переменная среды не оценивается. Вместо этого Jenkins показывает ошибку: Couldn't find remote ref refs/heads/${GITREF}

Вы можете видеть на скриншоте здесь, что переменная GITREF выглядит так, как задумано, но сообщение об ошибке показывает, что она не используется для получения моего Jenkinsfile :

enter image description here

Моя операция, насколько я понимаю, такова:

  1. Веб-крючок Github запускает мою работу.
  2. Плагин Generi c Webhook Trigger устанавливает переменные окружения из полезной нагрузки Github.
  3. Дженкинс должен извлекать ветку, обозначенную $GITREF, но вместо этого использует $GITREF в качестве строковый литерал.

Вы можете видеть соответствующую часть моей конфигурации работы на этом снимке экрана:

enter image description here

У вас есть идеи, что мне нужно изменить? Любая новая ветка в моем репо git может содержать изменения в Jenkinsfile, поэтому я хочу, чтобы моя конфигурация конвейера получала свой Jenkinsfile из любой ветки, вызвавшей текущую сборку.

Вот текст справки по использованию переменная в этом элементе конфигурации:

enter image description here

1 Ответ

0 голосов
/ 14 апреля 2020

Попробуйте отключить параметр Lightweight checkout, представленный в разделе Branches to build. Мы также используем переменную в наших заданиях в разделе Branches to build и отключили параметр Lightweight checkout долгое время go, когда мы столкнулись с той же проблемой.

Была опубликована проблема здесь , описывающая подобное поведение. Облегченная проверка имеет проблемы, но полная проверка работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...