문제

실제 경험을 바탕으로 어떤 자동화 된 빌드 환경을 더 잘 고려하는지 묻고 싶습니다. .NET 및 일부 Java 개발을 계획 하므로이 플랫폼을 모두 지원하는 도구를 갖고 싶습니다.

나는 주위를 읽고 발견했다 cruisecontrol.net, StackoverFlow 개발에 사용됩니다 TeamCity 다른 OS- 플랫폼의 빌드 에이전트를 지원하고 다른 프로그래밍 언어를 기반으로합니다. 따라서 두 가지 모두에 대한 실질적인 경험이 있다면 어떤 사람이 선호하고 그 이유는 무엇입니까?

현재, 나는 CC가 오픈 소스라는 사실에서 훨씬 적은 도구의 사용 편의성과 관리에 관심이 있으며, TC는 실행할 프로젝트가 많을 때 어느 시점에서 라이센스를 부여하는 대상이됩니다. 소량의 프로젝트에 필요합니다).

또한 위에서 언급 한 것을 충족하는 다른 도구가 있고 추천할만한 가치가 있다고 생각한다면, 논의에 자유롭게 포함 시키십시오.

도움이 되었습니까?

해결책

크루즈 컨트롤 (Java 버전)을 낳은 이래로 지속적인 통합 도구를 사용했습니다. 나는 어느 시점에서 거의 모든 것을 시도했습니다. 나는 TeamCity보다 행복한 적이 없었습니다. 설정하는 것은 매우 간단하고 여전히 많은 힘을 제공합니다. 빌드 시간, 단위 테스트 카운트, 합격률 등을 보여주는 빌드 통계 페이지는 매우 좋습니다. TeamCity의 프로젝트 홈페이지도 매우 가치가 있습니다. 간단한 .NET 프로젝트의 경우 솔루션이있는 곳과 어셈블리가 테스트가있는 곳과 소스 제어 위치를 제외하고 필요한 모든 것입니다. 또한 복잡한 MSBuild 스크립트를 사용하여 빌드 체인을 수행했습니다. 나는 또한 두 개의 TeamCity 업그레이드를 겪었고 그들은 고통 스러웠습니다.

cruisecontrol.net도 잘 작동합니다. 설정하는 것은 까다 롭지 만 더 긴 역사를 가지고 있으므로 웹에서 솔루션을 쉽게 찾을 수 있습니다. cruisecontrol.net은 오픈 소스이므로 원하는 것을 추가하거나 변경할 수있는 옵션도 있습니다. 나는 릴리스 이후 CruiseControl.net을 사용했으며 CC.Tray에 대한 초기 코드 중 일부를 썼습니다 (더 잘 알고있는 사람이 감사하게 쓴).

ThoughtWorks의 Cruise도 꽤 좋아 보이지만 전환해야 할 강력한 이유는 보이지 않습니다. 내가 새로운 프로젝트를 시작했다면 시도해 볼 수 있지만 TeamCity는 단순한 일을 단순하게 만들면서 복잡한 일을 상당히 고통스럽게 만들었습니다.

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

다른 팁

나는/CC.net의 열렬한 팬이었다. 우리는 현재 Cruisecontrol에서 5 개의 프로젝트를 보유하고 있으며 훌륭하게 작동합니다. 손으로 구성 파일을 작성하는 것은 고통 스럽지만 괜찮습니다.

하지만.

Kona : 지속적인 통합 및 더 나은 단위 테스트 Screencast (TeamCity에 대한 첫 1/3) TeamCity도 확인하겠습니다. 통합 장치 테스트 대시 보드와 구성 인터페이스를 좋아합니다.

제 생각에는 여러분 CC.NET 또는 TeamCity를 선택하기 전에이 비디오를 시청해야합니다.

추신 : 그물에 귀중한 CC.NET 비디오가 있기를 바랍니다.

내가 가장 좋아하는 CI 서버는 Hudson입니다. 설정 및 유지 관리가 쉽고 개발자 및 비 개발자에게 트렌드를 보여주는 멋진 그래프가 많이 있습니다.

나는 현재 프로젝트에 TeamCity를 사용하고 있으며 일반적으로 그것에 만족하지만, 생성하는 많은 그래프는 특히 유용하지 않으며 Hudson보다 구성하는 것이 더 복잡합니다.

즉, TeamCity는 강력하고 많은 용도로 무료이며 원격 실행 인 킬러 기능 하나가 있습니다. 아이디어 또는 이클립스에서 바로 확인을 "사전 커밋"하고 TeamCity 서버에서 하나 이상의 빌드 구성을 실행할 수 있으며 빌드가 성공한 경우에만 변경 사항을 커밋 할 수 있습니다 (예 : GEG, 컴파일 및 모든 테스트 통과).

몇 시간 안에 TeamCity와 Hudson을 모두 얻을 수 있다는 점을 감안할 때, 당신이 생각할 수있는 다른 사람들 (예 : Cruisecontrol)과 함께 모두 잡아서 나란히 달리는 것이 좋습니다. CI 서버를 빠르게 서서 나란히 비교할 수없는 경우, 최소한 설치 및/또는 구성을 쉽게 할 수있는 데이터 포인트가 있습니다.

나는 서로 다른 프로젝트에서 성공적으로 사용했습니다. 설정 및 행정 관점에서 팀 시티는 처리하기가 훨씬 쉽습니다. CC와 같은 .config 파일로 해킹 할 필요는 없으며 설정은 산들 바람입니다. 프로젝트가 많지 않기 때문에 팀 시티의 비용이 $$의 비용이들 때까지 CC보다 팀 시티를 추천합니다.

CC.NET과 TeamCity를 모두 사용했습니다. 조직 (5 명의 개발자)을 위해 TeamCity를 설치하고 설치해야합니다. 우리 조직은 소스 제어를위한 성능 및 이종 운영 체제에서 실행되는 다수의 빌드 에이전트와 같은 드문 드문 관행과 도구 (적어도 크기의 ORG)를 사용하여 초기 설정 두통을 일으켰습니다. 그러나 이메일을 통한 지원은 모든 것을 설정하는 데 절대적으로 최고였습니다. 문자 그대로 멍청한 질문에 대한 답변을 받았습니다.

인터페이스는 직관적이고 반응이 좋으며 피처 포장입니다. 제품은 매우 비싸다. 구성은 쉽고 웹 인터페이스는 에이전트 또는 서버 서비스를 다시 시작하지 않고도 자체를 업데이트하거나 페이지를 새로 고칠 수있을 정도로 직관적입니다.

제품의 모든 고급 기능을 사용하고있는 것처럼 느껴지고 지금까지 버그를 찾지 못했습니다. ndepend Integration, 중첩 된 스크립트, Perforce 버전 레이블, 이름을 지정하고 우리는하고 있습니다.

지속적인 통합 서버 또는 빌드 서버를 찾는 사람에게는 TeamCity를 강력히 추천합니다.

대체 도구를 던지고 싶지 않고 :-)

Hudson은 훌륭한 오픈 소스 대안이며 CC와 CC.Net을 사용했으며 환상적인 도구라고 생각합니다. 나는 허드슨으로의 전환을 숙고하고 설정하고 유지하기가 훨씬 쉽습니다.

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

스케일을 결정하는 시스템이 처리해야 할 프로젝트 수에 대한 수로 ...

나는 cruisecontrol.net을 사용하지만 많은 프로젝트를 구축하는 데 권장하지 않을 것입니다 ... 응용 프로그램으로 구성하는 C ++ 정적 라이브러리가 많이있는 (약간 이상한) 배열이 있습니다. 각 라이브러리는 다른 라이브러리에 따라 다르며 앱은 일련의 libs 및 빌드를 가져옵니다. 각 LIB에는 테스트 스위트가 있습니다. 각 앱에는 테스트 스위트가 있습니다. 5 개의 컴파일러와 (Windows) 플랫폼의 변형을 구축합니다.

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

물론, 그것은 오픈 소스이므로, 당신은 그것을 고칠 수 있습니다.

내가 가진 문제에 대한 자세한 내용과 cc.net의 패치는 여기를 참조하십시오. http://www.lenholgate.com/archives/cat_ccnet.html

최근에 CC .NET을 설정했습니다. 훌륭한 응용 프로그램이지만 약간의 인내가 필요합니다. 메모장에서 구성 파일을 편집 할 것입니다 :)

그것은 시간이 오래 걸렸으므로 잘 지원되며 일반적으로 당신이 전에하고 싶은 일을 한 사람을 찾을 수 있습니다. 웹 인터페이스는 .NET이며 우리는 Microsoft Shop이기 때문에 우리에게 플러스였습니다.

나는 TeamCity를 사용하지 않았지만 그것에 대한 몇 가지 권장 사항을 들었고 예쁘게 보입니다.

이전 회사에서 Linux에서 Cruisecontrol (Java 버전)을 설정하고 실행 한 경험이있었습니다. 대부분의 사람들이 알 수 있듯이, 설정하는 것은 가장 사소한 일이 아닙니다. 실행 가능한/관리 가능한 구성을 제시하려면 프레임 워크를 이해해야합니다. 그러나 일단 당신이 그 혹을 통과하면, 나는 cruisecontrol이 다른 시나리오에 맞게 다른 종류의 일을 할 수있을 정도로 유연하다고 생각합니다.

게다가 Cruisecontrol 문서, 그 위키 페이지 또한 유용한 정보도 있습니다.

나는 TeamCity에 대한 직접적인 경험이 없습니다. 사전 테스트 커밋 기능은 충분히 흥미로워 보입니다.

모양을 줄 수있는 다른 CC 도구는 대나무 Atlassian에서. 설정이 훨씬 쉽고 인터페이스가 더 좋습니다. 그러나 Cruisecontrol이 제공하는 것만 큼 유연하지 않습니다.

생각할 수있는 세 번째 옵션 : Thoughtworks 'Cruise. Cruisecontrol을 기반으로하지만 더 많은 기능, 더 쉬운 설정 등을 제공합니다. 무료가 아닙니다 (또는 오픈 소스).

http://studios.thoughtworks.com/cruise-continous-integration

나는 지난 1 년 반 동안 TeamCity를 사용해 왔으며 훌륭한 경험을 가지고 있습니다. 나는 많은 .NET 및 Java 프로젝트를 통합했으며 MSBuild, Maven 등과 같은 도구를 사용했습니다. TeamCity는 설정하고 작업하기가 매우 간단했습니다. 나는 다른 CI 도구에서 더 나빠질 수 있었던 약간의 악몽이었던 일부 SQL 프로젝트를 위해 CI를 실행할 수있었습니다.
최근 TeamCity 8.0.6으로 업그레이드되었습니다. 또한 TeamCity는 a 휴식 API 이는 일부 시나리오에 매우 유용합니다. 자동화를 위해 PowerShell을 사용하는 경우 여러 PSAKE/TEAMCITY 통합 스크립트를 사용할 수 있습니다. github

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