[英]How to push Tag to Bitbucket Git Repository in Bamboo from Cake build task?
我正在使用下一個代碼將Tag推送到Git存儲庫
#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);
}
});
陷入下一個問題:因為我們的竹子配置為使用SSH協議,並且Cake.Git(LibGit2Sharp)當前不支持它收到下一個錯誤
錯誤:不支持的URL協議
謝謝
我懷疑問題是由於使用了淺層克隆,淺層克隆默認情況下啟用。
淺克隆允許Bamboo執行克隆,即將歷史記錄截斷為指定的修訂版本。 這樣可以提高初始代碼簽出的速度,但是,如果您的構建依賴於完整的存儲庫歷史記錄,我們建議您不要使用此選項。
GIT操作通常需要完整的倉庫才能可靠地工作。
有點駭人聽聞,但它有效,會在找到更好的方法時更新答案。
Cake.Git當前不支持添加存儲庫,但在后台使用LibGit2Sharp進行了添加,因此僅在代碼中添加了LibGit2Sharp
命名空間。
核心問題是Cake.Git(LibGit2Sharp)尚不支持SSH(在GitHub上的問題是否可以將Cake.Git與SSH一起使用 ),因為workaraound調用git push
cmd
#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 });
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.