I'm writing a task to deploy my application to the server. However, I'd like for this task to run only if my current git branch is the master branch. How can I get the current git branch?
gradle-git
approach:I know there is a gradle-git plugin that has a method getWorkingBranch()
under the task GitBranchList
, but anytime I try to execute
task getBranchName(type: GitBranchList) { print getWorkingBranch().name }
I get a "Task has not executed yet" error. I looked at the source and it throws that error when there is no branch set. Does that mean this method doesn't do quite what I think it does? That I need to set the branch somewhere?
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. What is Gradle? A powerful build system for the JVM. Gradle is a build tool with a focus on build automation and support for multi-language development.
You also are able to get git branch name
without the 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 }
Refer to: Gradle & GIT : How to map your branch to a deployment profile
No this doesn't mean that the branch is not set. It means that the task hasn't really executed yet. What you're trying to do is calling a method in the configuration closure, whereas you probably want to call it after task execution. Try to change your task to:
task getBranchName(type: GitBranchList) << { print getWorkingBranch().name }
With the <<
you're adding a doLast, which will be executed after the task has been executed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With