Как получить текущую ветвь git в gradle?
Я пишу задачу для развертывания моего приложения на сервере. Тем не менее, я хотел бы, чтобы эта задача выполнялась только в том случае, если текущая ветвь git является главной ветвью.
Как получить текущую ветвь git?
gradle-git
подход:
Я знаю, что существует gradle - git плагин, у которого есть метод getWorkingBranch()
под задачей GitBranchList
, но в любое время я пытаюсь выполнить
task getBranchName(type: GitBranchList) {
print getWorkingBranch().name
}
Я получаю ошибку "Задача еще не выполнена". Я посмотрел на источник , и он выдает эту ошибку, когда нет набора ветвей. Означает ли это, что этот метод не делает то, что я думаю, что он делает? Что мне нужно установить ветвь где-нибудь?
Ответы
Ответ 1
Нет, это не означает, что ветвь не установлена. Это означает, что задача еще не выполнена. То, что вы пытаетесь сделать, - это вызов метода в закрытии конфигурации, тогда как вы, вероятно, захотите его вызвать после выполнения задачи. Попробуйте изменить задачу:
task getBranchName(type: GitBranchList) << {
print getWorkingBranch().name
}
С помощью <<
вы добавляете doLast, который будет выполнен после выполнения задачи.
Ответ 2
Вы также можете получить git branch name
без подключаемого модуля.
def gitBranch() {
def branch = ""
def proc = "git rev-parse --abbrev-ref HEAD".execute()
proc.in.eachLine { line -> branch = line }
proc.err.eachLine { line -> println line }
proc.waitFor()
branch
}
Обратитесь к: Gradle и GIT: как сопоставить ветку с профилем развертывания