Continuous Build 서버 (cc.net, hudson, bamboo 등) 원격 빌드 경험?


9

우리는 현재 빌드 프로세스에 cc.net 서버를 한 번 사용하며 .net (msbuild & nant 사용)과 java (maven 및 ant 사용)를 모두 빌드합니다.

CC.net은 소스 제어를 모니터링하고 별도의 서버에서 실행되는 원격 빌드를 트리거합니다. CC.net은 결과를 수집합니다.

원격 빌드를 실행할 때 일반적으로 다음과 같습니다.

  • 조롱 된 데이터를 사용하여 nunit 또는 junit 또는 이와 유사한 것을 실행합니다.
  • 선택적으로 DB 스크립트를 실행하여 새로운 데이터베이스 인스턴스를 작성하거나 알려진 위치에서 데이터베이스를 복원하십시오.
  • 셀레늄 또는 테스트 UI와 유사하게 실행
  • 코드 적용을 위해 emma 또는 ncover를 실행합니다.
  • 다양한 배포 환경 (테스트, 수락, 프로덕션)을위한 시스템 구축

한 번에 여러 빌드, 일부 .net 및 일부 Java (다른 프로젝트 팀의)가있을 수 있습니다.

새 프로젝트를 설정할 때 원격 빌드가 작동하는 데 시간이 많이 걸리며 cc.net보다 원격 빌드에 더 적합한 것이 있다고 생각합니다.

지속적인 통합 시스템을 사용한 원격 빌드 경험이 있습니까?
CI 서버의 기능 목록을 실제로 원하지는 않습니다. 다국어, 다중 서버 환경에서 이러한 기능을 사용한 방법에 대해 더 감사합니다.

답변:


8

Hudson (업데이트 : 오늘날 세계에서는 허드슨 포크 인 Jenkins를 사용합니다.)

나는 가시성이 높은 프로젝트를 위해 Java 및 .NET 엔터프라이즈 환경 모두에서 hudson을 사용했습니다 (아마도 일부 사이트를 방문했을 것입니다). Hudson은 처음부터 단단하지만 가장 중요한 부분은 원하는 모든 것을 할 수있는 플러그인이 많이 있다는 것입니다. Hudson은 고도로 구성 가능하고 훌륭한 커뮤니티를 보유하고 있으며 한 번에 여러 빌드가 필요한 경우 클러스터 환경에서 설정하기가 정말 쉽습니다. 내가 사용한 모든 CC 서버 (CC.NET, Hudson 및 TFS)에서 가장 좋아하는 CI 서버입니다.

또한 ChuckNorris 플러그인 을 사용 하여 엄지 손가락을 올리거나 내릴 수 있습니다.


1
이국적인 일을하지 않으면 Hudson이 좋은 선택이지만 하루 종일 배치 스크립트에서 수행하려는 작업을 수행 할 수없는 경우 Hudson은 그다지 잘하지 않을 것입니다.
Bill

Hudson은 Jenkins와 Oracle Hudson으로 분기했습니다. 어느 것을 사용해야합니까?

1
@ Thorbjørn : 저는 프로 젠킨스입니다. 이 몇 가지 이유가 있지만, 나를 위해 킬러 하나 젠킨스는보다 적극적인 개발을 받고 있다는 것입니다 - 주로 Kohsuke 가와구치, 허드슨 뒤에 주요 사람, 젠킨스 캠프에 있기 때문에. 그리고 그는 Jenkins가 그가 시작한 프로젝트의 진정한 연속 이라고 생각합니다 . 마지막으로 Jenkins에는 Microsoft 클립 아트가 아닌 로고가 있습니다!
Tom Anderson

@ Thorbjørn-Tom에 동의합니다. 나는 현재 약 1 년 동안 허드슨을 사용하지 않았지만 (현재는 TFS를 사용합니다), 젠킨스가 갈 길이라는 것이 일반적인 의견입니다. 다시 말하지만, 포크를 사용한 이후에도 사용하지는 않았지만 다시 픽업해야 할 경우 Jenkins 노선을 이용할 수 있습니다.
Ryan Hayes

7

우리는 얼마 전에이 질문에 직면하고 있었고 TeamCity 와 함께 가기로 결정했습니다 . 우리는 Hudson, CC 및 TeamCity 만 보았습니다. 선택은 쉬웠습니다. TeamCity는 결국 빌드 서버였습니다. 나는 이것에 대한 전문가가 아니며 당시 빌드 서버에 대한 나의 첫 경험이었습니다.

허드슨 -무엇을해야하고 어디에서 읽을 것인지 전혀 몰랐습니다. 그리고 나는 거기에서 무언가를 이해할 수 있었지만 옵션이 아니 었습니다-너무 많은 일. CC를 살펴보기로 결정했습니다.

크루즈 컨트롤 -허드슨과 동일하지만 약간 다른 방식입니다. 구글의 매뉴얼과 많은 도움 없이는 아무것도 이해할 수 없습니다. 방금 TC를 살펴 보았습니다.

TeamCity -TeamCity는 처음 두 개 이후 하늘처럼 느껴졌습니다. 이 세 가지 중에서 가장 유용합니다. 설치, 관리자 패널로 이동하여 프로젝트를 구성하고 (SVN이있는 위치를 표시하고, 파일을 가리키고, 범위 / 단위 테스트 등을 지정하십시오) 즐기십시오. Google에 아무것도하지 않았다고 말할 수는 없지만 여전히 95 %의 설정 프로세스가 매우 쉽고 명확했습니다. 이 도구를 적극 권장합니다. 가서보세요. 그것은 당신에게 많은 신경과 시간을 절약 할 것입니다 :)

또한 TC는 무료가 아닙니다. 상용 프로젝트에서 사용할 수있는 무료 버전이 있지만 (최대 빌드 구성 20)-가격 페이지를 살펴보십시오.

추신 : 나는 TC에서 일하는 것처럼 들리지만 실제로는 그렇지 않습니다. :)


3

우리는 CC.NET 1.4를 사용합니다.

우리는 1.6으로 업그레이드하려고합니다.

강력하지만 ... 만 올바르게 사용하고 모든 것이 어떻게 결합되는지 이해하는 경우에만 가능합니다. 팀 전체에 물어볼 것이 많습니다. 우리는 서버에 액세스 할 수 있고 구성을 변경할 수있는 'buildmasters'가 있습니다. 그럼에도 불구하고 ccnet과 관련하여 많은 인터넷 검색이 있으며 전체 비즈니스가 큰 혼란이되었습니다.

개인적으로 TeamCity로 이사하고 싶습니다.

ccnet을 피하는 것이 좋습니다.


1

좋은 질문. 우리는 현재 어떤 도구가 우리에게 가장 적합한 지 알아 내려고 노력하고 있습니다. 그래서 나는 당신에게 약간의 경험 만 말할 수있을 것입니다. 그러나 우리는 현재 어떤 CI 시스템을 선택했으며 어떤 이유로 관심을 가질 것입니다. 계속 알려주십시오.

CI 수준이 얼마나 높은지 감명 받았습니다. UI 테스트를 아직 실행하지 않고 데이터베이스 인스턴스 또는 이와 유사한 것을 만들지 않기 때문에 요구 사항이 적다는 것을 인정해야합니다. 단, 단위 테스트에 모의 객체를 사용합니다.

지금까지 우리의 경험에 :

Java 프로젝트의 경우 JUnit 및 Emma를 사용하여 제대로 작동하는 Bamboo를 사용합니다. 그리고 새로운 프로젝트를 설정하려는 노력은 그리 많지 않습니다.

.NET 프로젝트의 경우 여전히 최상의 솔루션을 찾고 있습니다.

  • 크루즈 컨트롤 : 리포지토리 연결 문제로 아직 실행할 수 없습니다.

  • TFS :

    a) 첫 번째 빌드를 실행하는 데 필요한 몇 가지 설정 단계가 있습니다.

    b) 접근 권한과 관련하여 극복해야 할 함정이 있습니다. 정의 할 수있는 많은 역할이 있으며 빌드 프로세스가있는 권한과 개인 로그인 계정이있는 권한을 정확히 알아야합니다. 그러나 관리 할 시간이 충분하면 필요한 모든 세부 단위를 정의 할 수 있습니다.

    c) 참조 된 라이브러리와 관련하여 많은 프로젝트에서 라이브러리를 공유하고 모든 프로젝트에서 라이브러리를 처리하고 싶지 않은 경우 관리해야 할 사항이 있습니다.

    d) NUnit 테스트 실행은 생각만큼 쉽지 않습니다. Visual Studio에서 제공하는 테스트 실행을 사용하는 경우에만 쉽지만 NUnit이 아닙니다.

    e) 우리는 아직 NCover를 실행하려고 시도하지 않았습니다 (먼저 먼저 :-)).

  • Hudson : 다음에 시도 할 도구입니다. .NET 용 플러그인이 정말 좋고 쉬운 것 같습니다. 작동 방식을 알려 드리겠습니다.

  • Bamboo : 우리가 얻은 첫 번째 예측 : "Too Java specific". 그럼에도 불구하고 우리는 .NET 플러그인을 시도 할 것입니다.

이 토론과 교류 경험을 계속할 수 있기를 바랍니다.

앤디

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.