如何从Cake构建任务将Tag推送到Bamboo中的Bitbucket Git存储库? [英] How to push Tag to Bitbucket Git Repository in Bamboo from Cake build task?
问题描述
我使用下一个代码将标签推送到Git存储库
#addinCake.Git
使用LibGit2Sharp;
var solutionFolder =./;
var versionTag =someTag;
任务(Default)
.Does(()=>
{
var remoteRepository = EnvironmentVariable(bamboo_planRepository_repositoryUrl);
var repositoryRevision = EnvironmentVariable(bamboo_planRepository_revision);
var absolutePath = MakeAbsolute(Directory(solutionFolder));
var repoName =central;
// LibGit2Sharp使用(var repo = new Repository(absolutePath.FullPath))
{
repo.Network.Remotes.Add(repoName,remoteRepository);
}
添加远程
GitTag(solutionFolder,versionTag,repositoryRevision);
GitPushRef(solutionFolder,gitUser,gitPassword,repoName,versionTag);
}
});
陷入下一期:因为我们的竹子配置为使用SSH协议,而Cake.Git(LibGit2Sharp )目前不支持它收到下一个错误
lockquote
错误:不支持的URL协议
谢谢
有点不好意思,但有效,更好的方法。
完成基于如何在a中标记git repo Bamboo build。
Cake.Git目前不支持添加存储库,但在使用LibGit2Sharp的引擎下,只需添加 核心问题是Cake.Git(LibGit2Sharp)不支持SSH(GitHub上的问题是否可以将Cake.Git与SSH一起使用),作为调用 I'm using next code to push Tag to Git repository Stuck into the next issue: because our bamboo configured to use SSH protocol, and Cake.Git(LibGit2Sharp) currently doesn't support it receiving next error Error: unsupported URL protocol Thanks A little bit hacky but it works, will update answer when will find better approach. Done based on the How to tag a git repo in a bamboo build. Cake.Git currently doesn't support adding repository but under the hood using LibGit2Sharp so just added Core issue is that Cake.Git(LibGit2Sharp) doesn't support SSH yet (Issue on GitHub Is it possible to use Cake.Git with SSH), as workaraound calling
这篇关于如何从Cake构建任务将Tag推送到Bamboo中的Bitbucket Git存储库?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋! LibGit2Sharp
命名空间添加到代码中。
git push
的工作区cmd 如何执行cmd
命令
#addinCake.Git
使用LibGit2Sharp;
var solutionFolder =./;
var versionTag =someTag;
var remoteRepository = EnvironmentVariable(bamboo_planRepository_repositoryUrl);
var repositoryRevision = EnvironmentVariable(bamboo_planRepository_revision);
任务(默认)
.Does(()=>
{
var absolutePath = MakeAbsolute(Directory(solutionFolder));
var repoName =central;
// LibGit2Sharp add remote
using(var repo = new Repository(absolutePath.FullPath))
{
repo.Network。 Remotes.Add(repoName,remoteRepository);
}
GitTag(solutionFolder,versionTag,repositoryRevision);
Cmd($git push {repoName} {versionTag});
}
});
private void Cmd(params object [] parameters)
{
if(parameters.Any())
{
var args = new ProcessArgumentBuilder )
.Append(@/ c);
foreach(参数中的var param)
args.Append(${param});
StartProcess(cmd,new ProcessSettings {Arguments = args});
}
}
#addin "Cake.Git"
using LibGit2Sharp;
var solutionFolder = "./";
var versionTag = "someTag";
Task("Default")
.Does(() =>
{
var remoteRepository = EnvironmentVariable("bamboo_planRepository_repositoryUrl");
var repositoryRevision = EnvironmentVariable("bamboo_planRepository_revision");
var absolutePath = MakeAbsolute(Directory(solutionFolder));
var repoName = "central";
//LibGit2Sharp add remote
using (var repo = new Repository(absolutePath.FullPath))
{
repo.Network.Remotes.Add(repoName, remoteRepository);
}
GitTag(solutionFolder, versionTag, repositoryRevision);
GitPushRef(solutionFolder, gitUser, gitPassword, repoName, versionTag);
}
});
LibGit2Sharp
namespace to the code. git push
through cmd How to execute cmd
command #addin "Cake.Git"
using LibGit2Sharp;
var solutionFolder = "./";
var versionTag = "someTag";
var remoteRepository = EnvironmentVariable("bamboo_planRepository_repositoryUrl");
var repositoryRevision = EnvironmentVariable("bamboo_planRepository_revision");
Task("Default")
.Does(() =>
{
var absolutePath = MakeAbsolute(Directory(solutionFolder));
var repoName = "central";
//LibGit2Sharp add remote
using (var repo = new Repository(absolutePath.FullPath))
{
repo.Network.Remotes.Add(repoName, remoteRepository);
}
GitTag(solutionFolder, versionTag, repositoryRevision);
Cmd($"git push {repoName} {versionTag}");
}
});
private void Cmd(params object[] parameters)
{
if (parameters.Any())
{
var args = new ProcessArgumentBuilder()
.Append(@"/c");
foreach (var param in parameters)
args.Append($"{param}");
StartProcess("cmd", new ProcessSettings { Arguments = args });
}
}