Иметь задание Дженкинса с параметром сборки BRANCH
. Когда задание запускается вручную, пользователь может выбрать ветку из списка для развертывания. Список предоставлен git плагином.
Но эта работа также может быть вызвана хуком GitLab. В этом случае параметр будет иметь значение по умолчанию, потому что не получил никакого ввода.
Есть ли способ получить параметр BRANCH
с соответствующей информацией? С именем ветви, полученным из перехвата GitLab.
PS Я думаю, что можно установить значение по умолчанию в значение ${BRANCH_FROM_HOOK ?: default_value}
, чтобы проверить наличие переменной BRANCH_FROM_HOOK
Нужно только найти способ, как поместить в BRANCH_FROM_HOOK
переменную, значение ответвления от хука. Я теперь, что плагин gitlab, который получает хук, устанавливает в gitlab.Branch
значение ветви, из которой приходит хук.
ОБНОВЛЕНИЕ: Что я сделал для достижения этой цели:
gitParameter defaultValue: "${env.gitlabBranch ?: "origin/master"}"
, но не как gitlabBranch
не задан на этапе запуска сборки.
import hudson.model.*
def env = Thread.currentThread()?.executable.parent.builds[0].properties.get('envVars')
def map = [:]
if (env['gitlabBranch'] != null) {
map['branch'] = env['gitlabBranch']
}
return map
После этого добавить параметр:
gitParameter name: branch, defaultValue: "${env.gitlabBranch ?: "origin/master"}"
, чтобы соответствовать map['branch']
, как сказано в do c - не работает, также пытался:
gitParameter defaultValue: "${branch ?: "origin/master"}"
- также не работал.
Не работал означает, см origin/master
значение, целое число фактической ветви, получаемой из ловушки gitlab.
Где я ошибаюсь?