저는 회사에서 CI 확장 문제를 다루면서 동시에 CI 및 여러 지점과 관련하여 어떤 접근 방식을 취해야하는지 파악하려고 노력하고 있습니다. stackoverflow, 다중 기능 분기 및 지속적인 통합에 유사한 질문이 있습니다 . 나는 더 많은 토론을 얻고 질문에 대한 분석을 제공하고 싶기 때문에 새로운 것을 시작했습니다.
지금까지 내가 취할 수있는 두 가지 주요 접근 방식이 있음을 발견했습니다 (또는 다른 방법 ???).
- 브랜치 당 여러 작업 세트 (여기서 Jenkins / Hudson에 대해 설명)
- 추가 작업을 관리하기위한 도구 작성
- 일괄 작업 생성 / 수정 / 삭제
- 지점 별 각 작업에 대한 사용자 지정 설정 (SCM URL, dep 관리 저장소 중복)
- 셸 도구, ant 스크립트 및 Jenkins CLI를 사용하여이 문제를 해결하는 사람들의 몇 가지 예입니다. 보다:
- http://jenkins.361315.n4.nabble.com/Multiple-branches-best-practice-td2306578.html
- http://jenkins.361315.n4.nabble.com/Is-it-possible-to-handle-multiple-branches-where-some-jobs-should-run-on-each-one-without-duplicatin-td954729. HTML
- http://jenkins.361315.n4.nabble.com/Parallel-development-with-branches-td1013013.html
- Hudson 작업을 자동으로 구성 또는 생성
- CI 클러스터에 더 많은 부하를 유발합니다.
- 개발자를위한 피드백주기가 느려집니다 (인프라가 새로드를 처리 할 수없는 경우).
- 추가 작업을 관리하기위한 도구 작성
- 2 개 브랜치 당 여러 작업 세트 (개발 및 안정)
- 두 세트를 수동으로 관리합니다 (작업의 conf를 변경 한 경우 다른 분기에서 변경해야 함)
- PITA이지만 관리해야 할 최소한
- 다른 추가 브랜치는 개발자로 푸시되기 전에 전체 테스트 스위트를 얻지 못합니다.
- 만족스럽지 않은 개발자. 개발자가 CI 확장 문제에 관심을 가져야하는 이유. 그는 간단한 요청을 가지고 있는데, 분기 할 때 내 코드를 테스트하고 싶습니다. 단순한.
- 두 세트를 수동으로 관리합니다 (작업의 conf를 변경 한 경우 다른 분기에서 변경해야 함)
따라서 개발자에게 자체 사용자 지정 분기에 대한 CI를 제공하려면 Jenkins (API 또는 셸 스크립트 등)에 대한 특수 도구가 필요하고 확장을 처리해야합니다. 또는 DEV에 더 자주 병합하고 사용자 지정 분기에서 CI없이 살도록 지시 할 수 있습니다. 어떤 것을 선택하거나 다른 옵션이 있습니까?