ti-enxame.com

Como posso obter o branch atual do git no gradle?

Estou escrevendo uma tarefa para implantar meu aplicativo no servidor. No entanto, gostaria que essa tarefa fosse executada apenas se meu branch git atual for o branch master. Como posso obter o branch git atual?

Abordagem gradle-git:

Eu sei que existe um plugin gradle-git que tem um método getWorkingBranch() sob a tarefa GitBranchList, mas sempre que tento executar

task getBranchName(type: GitBranchList) {
   print getWorkingBranch().name
}

Recebo um erro "A tarefa ainda não foi executada". Olhei para o fonte e ele lança esse erro quando não há conjunto de ramificação. Isso significa que esse método não faz exatamente o que eu acho que faz? Que preciso definir o ramo em algum lugar?

19
neptune

Não, isso não significa que o branch não está definido. Isso significa que a tarefa ainda não foi realmente executada. O que você está tentando fazer é chamar um método no encerramento da configuração, embora provavelmente queira chamá-lo após a execução da tarefa. Tente mudar sua tarefa para:

task getBranchName(type: GitBranchList) << {
    print getWorkingBranch().name
}

Com o << você está adicionando um doLast, que será executado depois que a tarefa for executada.

19
Hiery Nomus

Você também pode obter git branch name sem o plug-in.

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
}

Consulte: Gradle e GIT: Como mapear seu branch para um perfil de implantação

28
Song Bi