我有一个CI构建定义(TFS 2013),由提交到几个分支(它是一个git存储库)触发。我想在构建过程中使用分支名称将结果复制到正确的位置。我怎样才能做到这一点?在TFS内部获得git分支名称
1
A
回答
3
使自己的CodeActivity就像这个...
您需要的IBuildDetail BuildDetail为InArgument。
string branch = null;
string commit;
var environmentVariable = BuildDetail.Get(context);
if (environmentVariable != null && !BuildSourceVersion.TryParseGit(environmentVariable.SourceGetVersion, out branch, out commit))
{
var defaultSourceProvider = environmentVariable.BuildDefinition.GetDefaultSourceProvider();
if (BuildSourceProviders.IsGit(defaultSourceProvider.Name))
{
branch = BuildSourceProviders.GetProperty(defaultSourceProvider.Fields, BuildSourceProviders.GitProperties.DefaultBranch);
}
}
if (string.IsNullOrEmpty(branch))
{
throw new Exception("Could not find Branch");
}
Branch.Set(context, branch.Substring(branch.LastIndexOf("/", StringComparison.InvariantCultureIgnoreCase) + 1));
1
有整个构建过程中.git
文件夹访问,这样我就可以考虑使用PowerShell中的文件.git/HEAD
。可能只有提交hash(detached HEAD机制),然后需要一些更多的git调用来找出我真正的位置。总而言之,其他答案可能更清洁。
+0
嗨Lukáš,你是否设法从.git/HEAD中找到分支名称?如果创建自己的CodeActivity,我更喜欢这个解决方案。谢谢。 – Chatumbabub
+1
你好,你可以使用'git branch --all --contains'获取当前提交的所有分支名称,这对于你的用例来说已经足够了。 –
相关问题
- 1. 在TFS中使用git分支名称
- 2. 无法在bash中获得正确的git分支名称
- 3. 重命名TFS 2010分支,使得在相同的名称
- 4. Git Bash,获取本地分支名称
- 5. IntelliJ和Git分支名称
- 6. git和分支名称
- 7. 如何获得给定shasum的git分支名称?
- 8. 获取TFS触发构建Git分支
- 9. 在git中切换分支名称
- 10. 创建别名的Git分支名称
- 11. TFS Git分支文档
- 12. 通过分支名称\ id与git api获取git提交
- 13. 如何让git分支名称成为SonarQube项目名称的一部分?
- 14. 用git tfs合并两个TFS分支
- 15. git - 用部分分支名称扩展commit hook
- 16. 如何获得在GIT中创建标签的特定分支的名称
- 17. Git的 - 删除远程分支,在该分支名称空间
- 18. 在构建过程中获取git分支名称
- 19. 在git中获取父原始分支的名称?
- 20. 在Jenkins Jenkinsfile中获取git分支名称
- 21. 如何在Mac OSX上获取分支名称的Git完成?
- 22. 的Git分支/标签名称^ {}
- 23. posh-git显示长分支名称
- 24. git post hook中的分支名称
- 25. Jenkins - 管道访问git分支名称
- 26. 重用的Git分支名称
- 27. git diff分支 - 名称状态--ignore
- 28. 提示中的Git分支名称
- 29. Git teamcity中的短分支名称
- 30. 开关分支的部分名称
感谢您的回答!我想这会起作用。最后,我选择了脚本,但如果我们决定更多地使用TFS基础架构,我将会很快使用您的解决方案。 –
这很好。在F#中,我使用了'let _,branch,commit = BuildSourceVersion.TryParseGit x.SourceGetVersion'。作为SourceLink.Tfs中的扩展添加。 https://github.com/ctaggart/SourceLink/commit/058e071583578d22bcb2e0a87ede4c7b382b4279 –
你打开'GitTemplate.xaml'并添加一个代码活动,只是在这里代码这个代码? –