Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I do a git clone operation using Cake

Tags:

git

c#

cakebuild

Is it possible to clone a git repository using a Cake script? If so, how can this be done?

like image 838
Gary Ewan Park Avatar asked Dec 08 '16 20:12

Gary Ewan Park


1 Answers

A large number of git operations can be executed using the Cake.Git Addin. Normally, you would be able to find examples on how to use the aliases that are provided by this addin here, however, these examples do not exist yet.

In the interim, the following shows examples of how each of the four GitClone aliases can be used.

NOTE: For the purposes of this answer, we will use the Cake Git repository on GitHub

GitClone(string, ​DirectoryPath)​

#addin nuget:?package=Cake.Git

Task("Git-Clone")
.Does(() =>
{
    GitClone("https://github.com/cake-build/cake.git", "c:/temp/cake");
});

RunTarget("Git-Clone");

GitClone(string, ​DirectoryPath, ​GitCloneSettings)​

#addin nuget:?package=Cake.Git

Task("Git-Clone")
.Does(() =>
{
    GitClone("https://github.com/cake-build/cake.git", "c:/temp/cake", 
        new GitCloneSettings{ BranchName = "main" });
});

RunTarget("Git-Clone");

GitClone(string, ​DirectoryPath, ​string, ​string)​

NOTE: This alias doesn't seem to create the output directory. As a result, the EnsureDirectoryExists alias is used to make sure that it exists.

#addin nuget:?package=Cake.Git

Task("Git-Clone")
.Does(() =>
{
    EnsureDirectoryExists("c:/temp/cake");
    GitClone("https://github.com/cake-build/cake.git", 
        "c:/temp/cake", 
        "username", 
        "password");
});

RunTarget("Git-Clone");

GitClone(string, ​DirectoryPath, ​string, ​string, ​GitCloneSettings)​

NOTE: This alias doesn't seem to create the output directory. As a result, the EnsureDirectoryExists alias is used to make sure that it exists.

#addin nuget:?package=Cake.Git

Task("Git-Clone")
.Does(() =>
{
    EnsureDirectoryExists("c:/temp/cake");
    GitClone("https://github.com/cake-build/cake.git", 
        "c:/temp/cake", 
        "username", 
        "password", 
        new GitCloneSettings{ BranchName = "main" });
});

RunTarget("Git-Clone");
like image 92
Gary Ewan Park Avatar answered Oct 15 '22 18:10

Gary Ewan Park