CI 저장소 정의 (TFS 2013)가 여러 분기에 커밋되어 트리거됩니다 (git 저장소 임). 빌드 프로세스 내에서 분기 이름을 사용하여 결과를 올바른 위치에 복사하고 싶습니다. 어떻게해야합니까?TFS 빌드 내에서 git 분기 이름 얻기
1
A
답변
3
는
당신이 InArgument로 IBuildDetail BuildDetail 필요 ...이처럼 자신의 CodeActivity를 확인합니다.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
로 볼 수있다. 해시 (분리 된 HEAD 영역) 만 커밋 할 수 있으며, 내가 실제로있는 곳을 찾으려면 더 많은 자식 호출이 필요합니다. 결국, 다른 대답은 아마 더 깨끗합니다.
+0
안녕하세요 Lukáš, 당신은 .git/HEAD에서 지점 이름을 찾을 수 있었습니까? 나 자신의 CodeActivity를 만드는 대신이 솔루션을 선호합니다. 감사. – Chatumbabub
+1
안녕하세요, 당신은'git branch --all --contains'를 사용하여 현재 커밋중인 모든 브랜치 이름을 얻을 수 있습니다. 이것은 여러분의 유즈 케이스에 충분할 수 있습니다. –
관련 문제
- 1. TFS 분기 및 빌드 정의
- 2. 빌드 과정에서 git 브랜치 이름 얻기
- 3. TFS 프로젝트 이름 얻기
- 4. 빌드 가능 git-tfs 받기
- 5. TFS 빌드 서버 디렉터리 이름
- 6. VSTS 끌어 오기 요청에서 실제 원본 분기 이름 얻기
- 7. MSBuild 사전 빌드 단계의 분기 이름 추출
- 8. TFS 빌드 프로세스에서 git 저장소로 푸시
- 9. TFVC 소스 TFS 2013 Git 빌드 정의
- 10. TFS 2015 Api 빌드 정보 얻기
- 11. 테스트 실행 중 TFS 빌드 정보 얻기 (TFS 팀 빌드에서)
- 12. (TFS) 빌드 내에서 자바 스크립트 기능 제외
- 13. TFS 분기 및 병합
- 14. Git 분기 지원을 사용하여 TeamCity 7.1에서 분기 이름 <default>을 무시할 수 있습니까?
- 15. Git, GitHub, TFS, Git-TFS 및 VisualStudio.com
- 16. 쉽게 동일한 C# 프로젝트 (VS2010/TFS)의 다른 분기 빌드
- 17. tfs 2010 빌드 정의 생성
- 18. TFS 빌드 - 오류 받기
- 19. 분기 이름 변경 후 QueryHistory를 사용하는 TFS 변경 집합 내역
- 20. 특정 원격의 분기 이름 목록
- 21. TFS GIT 저장소를 CruiseControl.Net에 통합하십시오.
- 22. GIT 분기 - IOS App
- 23. 이클립스에서 git 분기 변경
- 24. Git Checkout 특정 분기
- 25. GIT 리포지토리의 분기 개정
- 26. 분기 된 GIT 지점에서
- 27. Git 분기 django
- 28. 분기 자체를 커밋합니까? - git
- 29. git 원격 분기 모니터링
- 30. git 분기 이해하기
답변 해 주셔서 감사합니다. 나는 이것이 효과가있을 것 같아요. 결국 스크립팅을 선택하지만, TFS 인프라를 더 많이 사용하기로 결정하면 솔루션을 사용하게 될 것입니다. –
위대한 작품. F #에서는'let _, branch, commit = BuildSourceVersion.TryParseGit x.SourceGetVersion'을 사용했습니다. SourceLink.Tfs의 확장 기능으로 추가되었습니다. https://github.com/ctaggart/SourceLink/commit/058e071583578d22bcb2e0a87ede4c7b382b4279 –
'GitTemplate.xaml'을 열고 코드 활동을 추가하고 거기에이 코드를 올리시겠습니까? –