[continuous-integration] 지속적인 통합을위한 CruiseControl [.Net] 대 TeamCity?

실제 경험을 바탕으로 어떤 자동화 된 빌드 환경이 더 나은지 물어보고 싶습니다. .Net과 Java 개발을 계획 중이므로이 두 플랫폼을 모두 지원하는 도구를 갖고 싶습니다.

저는 스택 오버플 로 개발에 사용되는 CruiseControl.NET 및 다양한 OS 플랫폼 및 다양한 프로그래밍 언어를 기반으로하는 빌드 에이전트를 지원하는 TeamCity 에 대해 읽고 알게되었습니다 . 두 가지 모두에 대한 실질적인 경험이 있다면 어떤 것을 선호하고 그 이유는 무엇입니까?

현재 저는 CC가 오픈 소스이고 TC가 실행해야 할 프로젝트가 많을 때 라이선스 대상이라는 사실보다는 도구의 사용 및 관리 용이성에 주로 관심이 있습니다. 소량의 프로젝트에 필요).

또한 위에서 언급 한 사항을 충족하는 다른 도구가 있고 권장할만한 가치가 있다고 생각하는 경우 토론에 포함 시키십시오.



답변

Cruise Control (자바 버전)을 만든 이후로 지속적인 통합 도구를 사용하여 작업했습니다. 나는 거의 모든 것을 어느 시점에서 시도했습니다. TeamCity와 함께하는 것보다 더 행복했던 적이 없습니다. 설정이 매우 간단하고 여전히 많은 전력을 제공합니다. 빌드 시간, 단위 테스트 횟수, 통과율 등을 보여주는 빌드 통계 페이지는 매우 좋습니다. TeamCity의 프로젝트 홈 페이지도 매우 중요합니다. 간단한 .NET 프로젝트의 경우 TeamCity에 솔루션이있는 위치와 테스트가있는 어셈블리를 알려 주면됩니다 (소스 제어 위치 제외). 또한 복잡한 MSBuild 스크립트를 사용하고 빌드 체인을 수행했습니다. 또한 두 번의 TeamCity 업그레이드를 거쳤는데 고통이 없었습니다.

CruiseControl.NET도 잘 작동합니다. 설정하기가 까다 롭지 만 기록이 길기 때문에 웹에서 솔루션을 쉽게 찾을 수 있습니다. CruiseControl.NET은 오픈 소스이기 때문에 원하는 것을 추가하거나 변경할 수도 있습니다. 나는 출시 이후 CruiseControl.NET을 사용해 왔으며 cc.tray에 대한 초기 코드를 작성했습니다 (고맙게도 잘 아는 사람이 다시 작성했습니다).

ThoughtWorks의 Cruise도 꽤 좋아 보이지만 전환해야 할 설득력있는 이유가 보이지 않습니다. 새 프로젝트를 시작하는 경우 시도해 볼 수 있지만 TeamCity는 복잡한 것을 매우 고통스럽지 않게 만드는 동시에 단순한 일을 간단하게 만드는 훌륭한 작업을 수행했습니다.

편집 : 우리는 몇 주 전에 TeamCity 5.0으로 업그레이드했으며 또 다른 고통없는 업그레이드였습니다. 이를 통해 향상된 코드 커버리지 기능과 GIT 지원을 활용할 수 있습니다. 우리는 또한 한동안 사용 된 개인 빌드 및 사전 테스트 된 커밋 기능을 사용하고 있습니다. TeamCity가 계속 개선되고 있으며 여전히 사용하기 쉽다는 것을 나타 내기 위해 답변을 업데이트해야한다고 생각했습니다.


답변

저는 CC.NET의 열렬한 팬이었습니다. 현재 CruiseControl에 5 개의 프로젝트가 있으며 훌륭하게 작동합니다. 손으로 구성 파일을 작성하는 것은 고통 스러울 수 있지만 괜찮습니다.

하지만 .

애프터 코나 : 지속적인 통합 및 더 나은 단위 테스트 스크린 캐스트 (인 TeamCity에 대한 첫 번째 1/3) 나도 인 TeamCity를 확인할 수 있습니다. 통합 단위 테스트 대시 보드와 구성 인터페이스가 마음에 듭니다.

내가 생각하는 모든 사람들이 CC.NET 또는 인 TeamCity을 선택하기 전에이 비디오를 시청해야한다.

추신 : 인터넷에도 가치있는 CC.NET 비디오가 있기를 바랍니다.


답변

제가 가장 좋아하는 CI 서버는 Hudson입니다. 설정 및 유지 관리가 쉽고, 개발자와 비 개발자에게 추세를 보여주는 멋진 그래프가 많으며 무료입니다.

현재 프로젝트에서 TeamCity를 사용하고 있으며 일반적으로 만족 스럽지만 생성되는 많은 그래프는 특별히 유용하지 않으며 Hudson보다 구성하기가 더 복잡합니다.

즉, TeamCity는 강력하고 다양한 용도로 무료이며 하나의 킬러 기능인 원격 실행이 있습니다. IDEA 또는 Eclipse에서 직접 체크인을 “사전 커밋”하고 TeamCity 서버에서 하나 이상의 빌드 구성을 실행하고 빌드가 성공한 경우에만 변경 사항을 커밋 할 수 있습니다 (예 : 컴파일 및 모든 테스트 통과).

TeamCity와 Hudson을 모두 몇 시간 안에 가동하고 실행할 수 있다는 점을 감안할 때, 둘 다 잡고 생각할 수있는 다른 모든 것 (CruiseControl 등)과 함께 나란히 실행하는 것이 가치가있을 수 있습니다. CI 서버를 신속하게 설치하여 나란히 비교를 수행 할 수 없다면 최소한 설치 및 / 또는 구성이 쉬운 데이터 포인트가 있습니다.


답변

나는 두 가지 모두 다른 프로젝트에서 성공적으로 사용했습니다. 설정 및 관리 관점에서 Team City는 처리하기가 훨씬 쉽습니다. CC에서하는 것처럼 .config 파일을 해킹 할 필요가 없으며 설정도 간단합니다. 많은 프로젝트가 없기 때문에 Team City 비용이 $$라는 점에 도달 할 때까지 CC보다 Team City를 권장합니다.


답변

CC.net과 TeamCity를 모두 사용했습니다. 내 조직 (5 명의 개발자)을 위해 TeamCity를 설정하고 설치하는 일을 맡고 있습니다. 우리 조직은 소스 제어를위한 Perforce 및 이기종 운영 체제에서 실행되는 여러 빌드 에이전트와 같은 몇 가지 흔하지 않은 관행과 도구 (적어도 우리 규모의 조직에 대해)를 사용하여 초기 설정 문제를 일으켰습니다. 그러나 이메일을 통한 지원은 모든 것을 설정하는 데있어 절대적으로 최고 수준이었습니다. 나는 말 그대로 몇 분 만에 멍청한 질문에 대한 답변을 받았습니다.

인터페이스는 직관적이고 반응이 좋으며 기능이 풍부합니다. 제품은 매우 비싸다고 느낍니다. 구성이 쉽고 웹 인터페이스는 에이전트 또는 서버 서비스를 다시 시작하거나 페이지를 새로 고치지 않고도 자체적으로 업데이트 할 수있을만큼 지능적입니다.

제품의 거의 모든 고급 기능을 사용하고 있으며 지금까지 버그를 전혀 발견하지 못한 것 같습니다. Ndepend 통합, 중첩 된 NAnt 스크립트, Perforce 버전 레이블링, 이름 지정, 우리가하고 있습니다.

지속적 통합 서버 또는 빌드 서버를 찾는 모든 사람에게 TeamCity를 적극 권장합니다.


답변

당신에게 대체 도구를 던지고 싶지 않고 🙂

Hudson은 훌륭한 오픈 소스 대안입니다. 저는 CC와 CC.net을 사용해 왔으며 이것이 환상적인 도구라고 생각합니다. 설정 및 유지 관리가 훨씬 쉬워 지므로 허드슨으로 전환하는 것을 고려하고 있습니다.

https://hudson.dev.java.net/


답변

결정한 시스템이 처리하는 데 필요한 프로젝트 수에 맞게 확장되는지 확인하십시오.

CruiseControl.Net을 사용하지만 많은 프로젝트를 빌드하는 데는 권장하지 않습니다. 응용 프로그램으로 구성하는 많은 C ++ 정적 라이브러리가있는 (약간 이상 할 수 있음) 배열이 있습니다. 각 라이브러리는 다른 라이브러리에 의존하며 앱은 일련의 라이브러리를 가져와 빌드합니다. 각 라이브러리에는 테스트 스위트가 있습니다. 각 앱에는 테스트 도구 모음이 있습니다. 5 개의 컴파일러와 다양한 (Windows) 플랫폼을 위해 빌드합니다.

내가 찾은 첫 번째 사실은 CC.Net의 프로젝트 트리거가 실제로 필요한 것이 아니며 다중 트리거가 프로젝트 트리거와 잘 작동하지 않는다는 것입니다. 프로젝트 트리거가 작동하는 방식 (리모팅을 사용하여 프로젝트가 저장된 서버에 연결 한 다음 (CC.Net의 동일한 인스턴스에서 관리하는 프로젝트 인 경우에도)) 해당 서버에서 모든 프로젝트를 가져와 순차적으로 목록을 검색합니다. 관심있는 프로젝트를 찾는 중 …) 확장이 잘되지 않는다는 의미입니다. 특정 수의 프로젝트를 초과하면 CC.Net이 빌드 머신의 CPU 대부분을 차지하고 있음을 알 수 있습니다.

물론 오픈 소스이므로 고칠 수 있습니다. 그리고 소수의 비 상호 의존적 프로젝트에는 괜찮습니다.

내가 가진 문제와 CC.Net의 일부 패치에 대한 자세한 내용은 여기를 참조하십시오. http://www.lenholgate.com/archives/cat_ccnet.html