2012-12-15 3 views
3

성공적으로 빌드 된 기능 분기를 다른 분기로 푸시 할 수있는 방법이 있습니까?TeamCity 푸시 기능 분기를 마스터 분기로

나는 그런 식으로 뭔가를 싶습니다

Git 저장소 (어떤 Gitorious/GitHub의). 지점 :

  • 마스터 (현재 프로젝트의 코드)
  • 품질 보증 (BRANCHE 경우 코드는 품질 보증을 기다립니다)
  • 기능 지점 (DEVS가 자신의 기능을 개발할 수있는 많은 원격 지사)

개발자는 마스터에 대한 읽기 액세스 권한과 해당 기능 분기에 대한 읽기/쓰기 권한 만 가져야합니다. QA 읽기/쓰기 품질 보증 분기 TeamCity - 읽기/쓰기 마스터, 품질 보증, 기능 분기 읽기 전용

그리고 지금은이 같은 흐름 싶은 :

  1. 개발자 마스터 지점에서 코드를 끌어합니다.
  2. 개발자가 feature-branch-A를 만듭니다.
  3. 개발자는
  4. 인 TeamCity 모니터
  5. 인 TeamCity 빌드 트리거 및 각 시험 커밋 가지 기능을 원격 branchA이 기능에 대한 변경 사항을 푸시합니다. 빌드가
  6. QA 팀은 코드 품질 보증 모든 것이 OK라고 결정하면
  7. (아마도 다른 테스트, 무결성 테스트를 실행), 그들이 지점을 마스터 변경을 밀어을 확인 성공하면
  8. 인 TeamCity는 품질 보증 지점에 변화를 못살게 굴지 .

QA가있는 해당 단계가 필요한지, 성공적인 빌드 및 테스트 후에 각 기능 분기가 master와 병합되어야하는지 여부는 알 수 없습니다.

먼저 알고 싶습니다. 이해가 되나요? 나는 CI로 시작하고 있으며 그것이 작동하는지 모르겠습니다.

두 번째로,이 워크 플로우가 정확하다면, TeamCity가 이와 같은 일을하도록 구성하는 방법과 충돌이 있거나 뭔가 잘못 될 수있는 경우를 알고 싶습니다.

최근에 비슷한 것을 본 Git + Jenkins + Gerrit에 대한 프리젠 테이션을 시청했지만 .NET 개발의 경우 개인적으로 TeamCity를 선호하지만 Jenkins와 비교하면 훨씬 쉽습니다.

답변

1

github를 사용하여 동일한 목표를 가진 워크 플로우를 구현했습니다 (구현은 약간 다르지만). 가능한 한 팀 구성과 관련하여 약간의 설정이 필요합니다. 비슷한 질문에 대한 또 다른 대답을했습니다. here

우리의 솔루션은 기본적으로 각각의 개발자가 주 리포지토리에서 자신의 포크를 읽고 쓰기 권한을 가지고 있으며 주 (녹색) 저장소에서 권한을 가져옵니다. Devs는 팀 포드가 개인 포크로 밀어 넣을 때 지어지는 지사 (스토리 당 하나, 수명이 짧음)에서 작동합니다.

dev에 변경 내용을 마스터에 병합 할 준비가되면 개발자는 풀 요청을 제출하고 코드를 검토 한 다음 마침내 마스터 분기와 병합합니다. 그런 다음 마스터 브랜치를 개인 포크로 밀어 넣습니다.

이 빌드가 성공적이며 모든 테스트가 통과되면 (이 시점에서 azure에 배포 한 다음 배포에 대한 테스트를 실행 한 경우) 팀 분기 작성 에이전트가 마스터 저장소를 녹색 저장소에 푸시합니다.

쉽게 가지 QA 저장소에 밀어 DEVS하려면이를 확장 할 수

(이 공포로 나를 채우고 자동 병합, 어떤 잠재적 인 문제를 해결)이 푸시는 빨리 감기이거나 푸시가 거부됩니다 QA 푸시를 녹색으로 트리거하는 빌드 서버에 커밋을 수행합니다 (또는 QA에 녹색으로 푸시 할 권한이 있음).

스냅 샷 종속성으로 사물을 연결해야하기 때문에 teamcity 설정이 약간 어려울 수 있습니다. 따라서 템플릿을 사용할 수 없으므로 개발자 당 최소 2 개의 빌드 구성이 필요합니다. 하늘빛을 배경으로 푸른 하늘과 달리기 시험을 펼친다.) 그래서 당신은 devs를 많이 가지고 있다면 이것을 관리하는 것이 어려울지도 모른다. 이상적으로는이 작업을 수행하지 말아야하지만 여전히 해결되지 않은 issues in teamcity으로 인해 테스트가 실패 할 경우 항상 빌드가 빨리 실패하지는 않습니다.

+0

이미 솔루션을 읽었으며 구성에 따라 구성되었습니다. TeamCity. 어떻게 모든 것이 생겼는지를 보여주는 PoC 였지만, 지금은 생산을 위해 설정하겠습니다. 위대한 게시물을 공유 Thx. github 대신 Atlassian Stash (소규모 팀)를 사용하고 싶습니다. 나는 Girious로 바꿀지 모르겠다. 우리가 보게 될 것이다. GitHub는 옵션이 아닙니다. TeamCity가 두 가지 빌드 구성을 필요로하는 것은 유감스러운 일입니다. 무료 구성을 빨리 다 써 버릴 수 있기 때문입니다.하지만 말했듯이, 어떻게 작동하는지 볼 수 있습니다. Thx 한번 더. – Simon

2

유효한 시나리오와 같습니다.

업데이트 : TeamCity 8.1 이후에는 전용 Automatic Merge 기능이 있습니다.

이전 답글 : TeamCity는 자동으로 분기 합병/푸싱 지원을 번들로 제공하지 않습니다 (위의 목록에서 6 번). TeamCity 이슈 트래커에 관련 feature request이 있습니다.

현재 TeamCity 버전에서 작동하는 시나리오를 얻으려면 TeamCity에서 스냅 샷 종속성을 사용하여 별도의 빌드 구성을 만들고 TeamCity에서 완료 한 기능 분기를 성공으로 트리거하면 빌드 스크립트가 병합을 실행하고 push git 명령. 이를 수행하려면 TeamCity 상담원 측 체크 아웃을 사용해야합니다.

+0

아마도이 기능은 TeamCity 8.1에 이미 구현되었음을 알 수 있습니다. http://blog.jetbrains.com/teamcity/2013/10/automatic-merge/ – KIR

관련 문제