2008-09-28 4 views
19

Cruisecontrol과 Hudson은 두 가지 인기있는 연속 통합 시스템입니다. 두 시스템 모두 자동화 된 연속 빌드를 훌륭하게 수행 할 수 있지만 일괄 처리 또는 bash 빌드 스크립트를 만든 다음 Windows 스케줄러 또는 cron을 사용하여 빌드를 예약하는 것이 훨씬 쉽습니다.C++ 프로젝트에 가장 적합한 연속 통합 도구는 무엇입니까?

C++ 프로젝트에서 사용할 수있는 지속적인 통합 시스템이 있습니까? 아니면 스크립트와 스케줄러를 더 간단하게 사용하고 있습니까?

+1

이 질문은 [현재 메타에 논의 중입니다] (http://meta.stackoverflow.com/questions/320141/link-to-a-deleted-question-in-a-book). –

답변

13

우리는 C++ 프로젝트에서 CruiseControl을 CI 용으로 사용했습니다. 우리가 개미를 사용하는 유일한 방법 인 반면, CruiseControl의 개미 스크립트는 보통의 빌드 스크립트를 시작하기 때문에 매우 간단하며 오래 동안 업데이트 할 필요가 없습니다. 따라서 CrusieControl이 Java 기반이라는 사실은 실제로 우리에게 전혀 문제가되지 않았습니다.

크루즈 컨트롤 같은 것을 사용하는 주요 장점입니다

  • 이메일 각 빌드 후 또는 실패 후 좋은 웹 페이지를 보여주는 빌드 상태는 소스 제어에 커밋 후 자동으로
  • 구축을 구축 시스템
  • 빌드 상태를 모니터링하는 firefox 플러그인
  • 모든 빌드 오류에 대한 출력을 표시합니다.
  • 파일은 물론

는이 모든 작업을 수행하는 스크립트를 직접 작성 할 수 있습니다합니다 (buid을 위반하는 개발자 보는 좋은) 마지막 빌드 이후 변경된 것을 보여줍니다,하지만 왜 모든 일을? 장기적으로 CruiseControl (또는 이와 유사한 항목)을 설정하는 초기 비용은 사용자 지정 CI 빌드 스크립트를 유지 관리하고 업데이트하는 비용보다 훨씬 적습니다.

필요한 경우 매일 빌드를 시작하고 cron에서 시작한 간단한 스크립트만으로 충분하면 필요한만큼 수행하십시오. 그러나 CI의 장점 중 하나는 모든 체크인 후에 빌드 상태 보고서를 받는다는 것입니다. 스크립트를 작성하면 더 많은 작업이 필요하며 CruiseControl은 이미이를 수행합니다.

4

우리는 Dart Dashboard을 사용했습니다. 오픈 소스지만 KitWare에 의해 구동됩니다. 그들은 그 이후로 이름을 CDash으로 바꿨습니다. 나는 여전히 그럴 수 있다고 생각합니다. 우리는 디버깅 및 릴리스 모드 에서뿐만 아니라 1000 가지 응용 프로그램 테스트를 실행하고 결과를보고하는 등 10 가지 플랫폼에서 야간 및 지속적인 통합을 비롯한 여러 가지 테스트를 수행하고 있습니다.

2

JetBrains' TeamCity도 시도 할 수 있습니다. 상용 제품이지만 최대 20 개의 빌드 구성에 대한 무료 라이센스를 제공합니다.

+0

TeamCity는 현재 개발자 계정이 아닌 빌드 구성의 양에 묶여 있습니다. – zergius

11

코드 메트릭에 대해 Hudson을 사용하고 CI는 SonarQube입니다. 그들은 통합되어 있으며 허드슨은 cronjob이 이길 수없는 소수의 플러그인을 가지고 있습니다.

위대한 플러그인 중 하나는 CI 게임입니다. CI 게임은 누가 빌드를 위반했는지, 누가 그것을 위반하지 않고 커밋했는지에 대한 점수를 유지합니다. Hudson에는 VMWare, Selenium, SVN, CSV, Git과 함께 플레이 할 수있는 플러그인이 있습니다. RSS 신디케이션은 다른 모든 것을 자동화하는 데 도움을 줄 수 있습니다.허드슨이 큰

... 지속적인 통합 (CI) 도구의 좋은 기능의

+0

허드슨에 대한 +1을 제공합니다. 허드슨은 CC보다 훨씬 예뻐요. 또한 구성하기가 훨씬 쉽습니다. 기능은 거의 동일합니다. – gbjbaanb

1

하나는 빌드가 뭔가 소스 제어 저장소에 체크인 때마다 트리거됩니다 있다는 것입니다.

그런 것이 필요하지 않은 경우 Windows 작업 스케줄러 또는 cron 작업을 사용하는 것이 좋습니다.

또한 CI 도구에는 (웹) 대시 보드 및 고급 로깅 ​​기능이 함께 제공됩니다.

"CI 도구를 사용해야하는 이유는 무엇입니까?"라는 질문에 내 CI 도구가 사용해야하는 이유가 무엇보다 많습니다. 배치 스크립트가 귀하의 요구에 부합한다면, 그것을 사용하십시오. CI 도구가 추가 구성 요소로 필요하지 않은 경우 빌드 환경을 만드는 것이 쉽습니다. 소스 제어 트리거 빌드, 대시 보드, 이전 빌드 결과 저장 또는 기타 로깅을 원할 경우 CI 도구를 사용하여 배치 또는 셸 스크립트에서 이러한 모든 기능을 개발하지 마십시오.

관련 문제