Я пытаюсь перечислить ветви github для параметризованного задания Jenkins, используя плагин активного выбора. Я попробовал следующие groovy скрипты, но безрезультатно - ни одна ветвь не найдена / не перечислена в выпадающем списке.
1.
def process = ("ssh-agent bash -c 'ssh-add /home/ubuntu/.ssh/id_rsa; git ls-remote -t -h git@github.com:username/repository.git'").execute()
return process.text.readLines().collect {
it.split()[1].replaceAll('refs/heads/', '').replaceAll('refs/tags/', '').replaceAll("\\^\\{\\}", '')
}
2.
def command = 'ssh-add /home/ubuntu/.ssh/id_rsa; git ls-remote -t -h git@github.com:username/repository.git'
def process = ["ssh-agent", "bash", "-c", command].execute()
return process.text.readLines().collect {
it.split()[1].replaceAll('refs/heads/', '').replaceAll('refs/tags/', '').replaceAll("\\^\\{\\}", '')
}
3.
def process = ["ssh-agent", "bash", "-c", "ssh-add", "/home/ubuntu/.ssh/id_rsa", "git", "ls-remote", "-t", "-h", "git@github.com:username/repository.git"].execute()
return process.text.readLines().collect {
it.split()[1].replaceAll('refs/heads/', '').replaceAll('refs/tags/', '').replaceAll("\\^\\{\\}", '')
}
Я подозреваю, что это как-то связано с тем, как groovy анализирует вложенные команды оболочки, но я не уверен.
Ваша помощь будет принята с благодарностью.
Обновление
Я пробовал сценарий 2 в groovysh, как предложено @cfrick, и он отлично работает Кажется, что проблема связана с моей версией Jenkins, потому что плагин расширяемого параметра выбора имеет ту же проблему с моим groovy сценарием.
Я решил обойти мои потребности и отбросил все это вещь.