개인적으로 CruiseControl과 CruiseControl.Net 만 사용했습니다. 그 이유는 경제와 관련이 있습니다. 그것들은 합리적으로 안정적이며 일단 설정하면 유지하기 위해 할 일이 거의 없습니다. 사용자 커뮤니티는 일반적으로 매우 유용하며 필요에 따라 확장 될 수 있습니다.
즉, 더 나은 설정 경험과 상업적 지원을 제공하는 몇 가지 상용 제품이 있습니다 (하나는 JetBrains, 다른 하나는 Atlassian). 나는 이러한 제안을 시도하는 것을 의미했지만 실제로 아직 기회가 없었습니다.
CI 도구는 해석 된 언어보다 컴파일 된 언어로 재생하는 데 더 중요한 역할을 수행하지만 CI 도구가 해석 된 언어에서 낭비되는 것은 아닙니다. 서로 의존하는 여러 프로젝트가 있고 변경으로 인해 실수로 변경이 종속성을 손상시키지 않도록하려면 CI 도구가 매우 중요합니다.
CI 도구를 사용하면 다음과 같은 세 가지 일반적인 문제 유형을 파악할 수 있습니다.
- 컴파일 오류-클래스의 서명이 종속성을 깨뜨리는 방식으로 변경되는 경우 제공 시간이 끝나기 전에 클래스에 대해 아는 것이 가장 좋습니다.
- 논리 오류-클래스의 동작이 종속성을 손상시키는 방식으로 변경되면 조기에 파악하는 것이 가장 좋습니다. 이것은 일종의 자동 테스트, 가장 일반적으로 단위 테스트로 확인해야합니다.
- 승인 테스트-완성 된 제품에서 실행할 자동화 된 테스트 제품군이있는 경우 자주 실행하는 것이 가장 좋습니다.
해석 된 언어는 컴파일되지 않으므로 포착 할 컴파일 오류가 없습니다. 그러나 다른 두 가지 문제는 CI 도구가 Ruby / Python / Perl / etc의 프로젝트에 유용 할 정도로 충분히 일반적입니다.
논리 오류와 합격 테스트 포인트의 핵심은 "자동화 된"테스트입니다. 기계가 실행할 수있는 일련의 테스트가 없다면 CI 도구의 더 큰 이점이 실제로 없습니다. 자동화 된 제품군은 시간이 지남에 따라 구축 될 수 있으므로 소규모로 시작할 수 있습니다.
편집하다
많은 수의 CI 도구 (주로 몰랐던)의 기능 비교에 대해서는이 멋진 차트를 참조하십시오.
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix