2012-09-28 3 views
11

우리는 GitHub 저장소에서 모든 브랜치를 빌드하는 TeamCity 7.1 설치를 가지고 있습니다.TeamCity building Git/GitHub pull 요청

GitHub에는 체크인시 빌드를 트리거하기 위해 TeamCity에 다시 알림 훅이 있습니다. Teamcity는 변경 사항을 확인하기 위해 매 120 초마다 GitHub를 폴링합니다 (변경 사항을 체크인 할 때 서버가 오프라인 인 경우). 변경 및 푸시 병합이 완료되면

  • 는, 마스터에서 끌어 기능이 완료 될 때까지

    1. 는 해당 분기에 커밋 마스터에서 지점을 만듭니다

      우리의 일반적인 개발은 일반적인 패턴을 따른다 원격

    2. 에 관리자가 마스터로 병합 할 수 있도록하는 GitHub의 풀 요구를 제출

    그러나 모든 것이 순조롭게 진행되고 있습니다 (정확한 구성 설정을 얻기 위해 많은 검색을 한 후).

    위의 프로세스는 TeamCity에서 몇 가지 빌드를 트리거하며 필요한지 여부를 알고 싶습니다. 일반적으로 우리는 될 겁니다 : 심판이/풀/심판/헤드/지점 이름

  • /대한 빌드를위한

    • 빌드//머리
    • 에 대한 빌드/심판은// 번호/당겨 당연히 제 빌드 마지막 체크인 특정 분기이며, 상기 제 빌드 풀 요청하지만 w

    병합 모자는 세 번째 빌드인가?

  • +0

    일반적으로 이것은 문제가되지 않지만 통합 테스트를 통해 전체 RoR 테스트 스위트를 실행하는 데 ~ 10 분이 소요되므로 최대 30 분 동안 풀 요청에 대한 빌드 상태 피드백을받지 못합니다. – asafb

    답변

    3

    빌드가 중복 된 것처럼 보입니다.

    1. 것은 당신의 refs/heads/master 지점의 지속적인 통합을 정리 다음과 같이 인 TeamCity는 자식의 기능을 가지 빌드 구성하는 더 절약하는 방법입니다. 120 초간의 설문 조사는 여기 꽤 합리적입니다.
    2. refs/heads/feature-name 가지에 대해 야간 빌드를 구성합니다. 내 경험에 비추어 볼 때, 지사 지점 중 일부에만 120 초 폴링이 필요합니다.

    인 TeamCity 7.1은 기능이 지점을 AutoTrigger 할 수있는 아주 좋은 기능을 가지고 있으므로 단계 (2) refs/heads/feature-* 같은 분기 마스크 몇 번의 클릭으로 설정할 수 있습니다.

    풀 빌드 요청에는 마스터 빌드가 적용되므로 의미가 없습니다.

    +1

    끌어 오기 요청 생성과 관련하여 새로운 GitHub 빌드 상태 API를 사용하면 GitHub에 직접 끌어 오기 요청의 빌드 상태를 표시 할 수 있습니다. 이는 대대적 인 시간 절약입니다. 이것은/pulls/1/head 브랜치를 빌드 할 때 나타납니다. – asafb

    +1

    우리가 변경 한 주요 설정 중 하나는 위의 (약간 수정 된) 분기 사양이며 ** 대부분의 두통을 유발하는 각 체크인 인라인 옵션에서 트리거 빌드를 제거했습니다 – asafb

    13

    세 번째 빌드가 실제로 가장 가치가 있습니다. 풀 요구 자동 병합 (github에서 버튼을 누르면 병합)의 결과입니다.

    +0

    이것은 또한 마스터에서 끌어 오기 요청 분기로 병합하는 것이 중복됩니다. –