C++ 프로젝트에 가장 적합한 지속적 통합 도구는 무엇입니까?[닫은]

StackOverflow https://stackoverflow.com/questions/145586

  •  02-07-2019
  •  | 
  •  

문제

Cruisecontrol과 Hudson은 널리 사용되는 두 가지 지속적 통합 시스템입니다.두 시스템 모두 자동화된 연속 빌드를 훌륭하게 수행할 수 있지만 배치 또는 bash 빌드 스크립트를 만든 다음 Windows 스케줄러 또는 cron을 사용하여 빌드를 예약하는 것이 훨씬 쉬워 보입니다.

C++ 프로젝트에 사용할 수 있는 더 나은 지속적 통합 시스템이 있습니까?아니면 스크립트와 스케줄러를 사용하는 것이 더 간단한 방법입니까?

도움이 되었습니까?

해결책

우리는 사용하고 있습니다 크루즈 컨트롤 C ++ 프로젝트의 CI의 경우. 그것이 우리가 ANT를 사용하는 유일한 것이지만, cruisecontrol 용 ANT 빌드 스크립트는 일반 빌드 스크립트를 시작하므로 매우 간단하며 오랫동안 업데이트 할 필요는 없었습니다. 그러므로 Crusiecontrol이 Java 기반이라는 사실은 실제로 우리에게 전혀 문제가되지 않았습니다.

크루즈 컨트롤과 같은 것을 사용하는 주요 이점은

  • 빌드 상태를 보여주는 멋진 웹 페이지
  • 각 빌드 후 또는 실패한 빌드 후 이메일
  • 소스 제어 시스템에 대한 커밋 후 자동 구축
  • 빌드 상태를 모니터링하는 Firefox 플러그인
  • 빌드 오류에 대한 출력을 보여줍니다.
  • 마지막 빌드 이후 어떤 파일이 변경되었는지 보여줍니다 (어떤 개발자가 Buid를 파괴했는지 확인하는 데 좋습니다)

물론 당신은이 모든 일을하는 대본을 직접 쓸 수 있지만 왜 모든 것이 작동합니까? 장기적으로 Cruisecontrol (또는 유사한 것)을 설정하는 초기 비용은 사용자 정의 CI 빌드 스크립트를 유지하고 업데이트하는 비용보다 훨씬 적을 것입니다.

만약 당신이 필요한 모든 것이 매일 빌드를 시작하고 Cron에 의해 시작된 간단한 스크립트가 당신의 요구에 충분하다면, 반드시 그렇게하십시오. 그러나 CI의 장점 중 하나는 모든 체크인 후 빌드 상태 보고서를 얻는 것입니다. 더 많은 작업이 필요하고 Cruisecontrol이 이미 수행 할 수있는 대본을 작성하는 것입니다.

다른 팁

우리는 사용 허드슨 강 CI와 소나 퀴 베 코드 메트릭의 경우. 그들은 통합되어 있으며 Hudson은 Cronjob이 이길 수없는 소수의 플러그인을 가지고 있습니다.

훌륭한 플러그인 중 하나는 CI 게임으로, 누가 빌드를 깨뜨리고 누가 그것을 깨지지 않고 추천하는지에 대한 점수를 유지합니다. Hudson에는 VMware, Selenium, SVN, CSV, Git과 함께 재생할 수있는 플러그인이 있습니다. RSS 신디케이트가있어 다른 모든 것을 자동화하는 데 도움이됩니다.

허드슨은 훌륭합니다 ...

우리는 사용해 왔습니다 다트 대시보드.오픈 소스이지만 다음에 의해 구동됩니다. 키트웨어.그 이후로 이름을 다음과 같이 변경했습니다. CDash 나는 여전히 능력이 있다고 생각합니다.우리는 디버그 모드와 릴리스 모드 모두에서 10개의 서로 다른 플랫폼에 걸쳐 야간 및 지속적인 통합을 포함한 여러 종류의 테스트를 수행하고 있으며, 수천 개의 애플리케이션 테스트를 실행하고 거기에서도 결과를 보고하고 있습니다.

I've been using Buildbot for the Spring RTS engine project succesfully.

You can also try JetBrains' TeamCity. It's a commercial product but it gives a free license for up to 20 build configurations.

One of the nice features of a continuous integration (CI) tool is that a build gets triggered every time something is checked into your source control repository.

If that is not something you need then you are probably better of using the windows task scheduler or cron jobs.

In addition CI tools also come with a (web) dashboard and advanced logging capabilities.

Your question seems to me more "why would I use a CI tool" then "which CI tool should I use". If a batch script serves your needs, please use that. (Re)creating a build environment only becomes easier if you do not need a CI tool as an additional component. If you want source control triggered build, a dashboard, storage of old build results or other logging, use a CI tool and avoid developing all such functions in batch or shell scripts.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top