Можно ли извлечь часть строки $ BRANCH_NAME в конвейере Jenkins?

Сейчас я строю многоотраслевой конвейер. Я пытаюсь создать образ докера и пометить его именем ветки, которое всегда будет feature / XXX-111. Однако, когда я получаю имя ветки с помощью переменной env $ branch_name, сборка докера с командой tag -t не похожа на / в имени ветки функции / XXX-111. Поэтому мне было интересно, можно ли получить только часть имени ветки XXX-111 и отбросить функцию /. Любая помощь будет оценена по достоинству.

Спасибо!


person giturr14    schedule 04.07.2020    source источник


Ответы (2)


Это работает:

def branch_name = 'feature/XXX-111'
def regex_to_search = 'feature/([\\w-_]*)'
def matcher = branch_name =~ regex_to_search
if (matcher.find()) {  
    println matcher.group(1)
}

Вывод:

XXX-111
person MaratC    schedule 05.07.2020
comment
спасибо, но имя ветки будет постоянно меняться, поэтому я использую переменную $ GIT_BRANCH для извлечения имени ветки. Так что я не думаю, что могу установить branch_name = $ GIT_BRANCH? Верно? - person giturr14; 06.07.2020
comment
Начните с def branch_name = GIT_BRANCH и двигайтесь оттуда. - person MaratC; 06.07.2020

Вы можете использовать отличную функцию разделения -

def branchName = 'feature/XXX-111'
def newBranchName = branchName.split('/')[1]
println(newBranchName)
​

Вывод:

XXX-111
person Pankaj Saini    schedule 05.07.2020
comment
спасибо, но имя ветки будет постоянно меняться, поэтому я использую переменную $ GIT_BRANCH для извлечения имени ветки. Так что я не думаю, что могу установить branch_name = $ GIT_BRANCH? Верно? - person giturr14; 06.07.2020
comment
Вы можете точно установить - person Pankaj Saini; 06.07.2020