Ruby on Rails에 대한 지속적인 통합? [닫은]


149

Ruby on Rails 용 Continuous Integration 솔루션을 찾고 있었지만 그 결과에 너무 만족하지 않았습니다. 나는 CruiseControl.NET을 사용하는 .NET 상점에서 왔으며 사용의 용이성과 풍부한 상태 /보고로 인해 망쳐졌습니다.

이상적으로 나는 찾고 있습니다 :

  • 명백한 Git / SVN 및 Test :: Unit 통합

  • Rake 및 / 또는 Capistrano와 통합

  • 빌드 상태를 보여주는 웹 인터페이스

  • 실패한 빌드에 대한 이메일 알림.

  • 바탕 화면 알림 (잠재적으로 Growl을 통해)

  • 빌드 상태를위한 REST API

  • UI에서 다른 코드 분석 도구를 실행하고 결과를보고하기위한 플러그인 프레임 워크


11
3 년 후에 지금 당신의 선택은 무엇입니까?
Andrei

3
circleci.com을 제안 할 수 있습니까 ?
Paul Biggar

답변:


83

방금 옵션을 살펴보고 2011 년 말 현재 롤업 할 것이라고 생각했습니다.

청렴

임사 체험 에 여전히 링크 - 더를 왼쪽으로 웹 사이트오래된 정보 데모 사이트와 다운 된이 프로젝트는 다시 삶의 불꽃을 가지고있다. 그러나 문서는 계속 진행되지 않았 으며, 튜토리얼 의 많은 단계가 완전히 깨졌습니다 . 보석에 대한 참조를 변경하고, 대역 외의 것을 구축 한 후에도 여전히 작동하지 못했습니다 .

크루즈 컨트롤 .rb

간단한 방법 : 그냥 다운로드하고 명령 줄을 실행하여 프로젝트를 추가 하고 (그렇지 않은 UI없음 ) Rails 앱을 실행하십시오. 그러나 프로젝트를 편집하기위한 UI가 없으며 링크를 표시하는 것 외에도 빌드 아티팩트와 실제 통합 이 없습니다. 테스트 실행 그래프, 추세선 등이 없습니다. 또한 routes.rb파일을 조정 하여 코드 연결 작업 ( resources :projects라인은 다른 모든 기본이 아닌 경로 아래로 이동해야 함).

TeamCity

이것은 굉장해 보이지만 급여 규모는 혼란 스러워 보입니다 . 3 명의 요원이 무료이며, 귀하가 의지 할 때 수백 달러를 투자해야합니다. 개인 빌드 는 훌륭해 보이지만 예산은 없습니다 .

젠킨스 (Nee Hudson )

이것은 자바 이며, 수천 개의 옵션으로로드되어 있기 때문에 UI가 혼란스럽고 프로젝트를 설정하는 것이 번거 롭다 . 그러나 일단 설정하면 어디서나 가져 와서 대부분을 실행하고 대부분을보고 할 수있는 많은 플러그인 을 얻을 수 있습니다. 는 OS X 설치 프로그램에서 젠킨스 포인트 /Users/Shared/Jenkins/Home하지만 해당 디렉토리 또는 작성에 실패 chown에 그 daemon(기본적으로 사용하고, 새로 변경해야합니다 jenkins당신은 GitHub의 통합을 설정할 수 있도록 사용자).

기타

나는 실제로 이것을 시도하지 않았지만 그 이유를 언급 할 것이라고 생각했습니다.

  • CI Joe 는 GitHub 리포지토리를 원하는 것보다 더 많이 소유하고 싶어하며 제작자는이를 사용하지 않습니다. 그들은 Jenkins에 있습니다.
  • Cerberus 는 깔끔하게 작지만 UI가 없으며 다른 사람들이 볼 수있는 빌드 아티팩트를 자동으로 게시하지 않습니다.
  • BigTuna 는 (이미 최소한의) 커뮤니티 지원이없는 CruiseControl.rb 복제 본인 것 같습니다.
  • JIRA와 BitBucket을 사용하면 Bamboo 는 정말 깔끔해 보이지만 둘 다 사용하지는 않습니다. 배포하지만 Capistrano에 이미 설치되어 있습니다.

선택

우리는 Jenkins 와 함께 갔지만 더 가벼운 솔루션 중 하나가 실제로 작동하기를 바랍니다.


8
트래비스는 어때?
Vanuan

3
저는 비공개 소스 프로젝트를 진행하고 있기 때문에 (잘못 쓰여진) 문서를 오해하지 않는 한 Travis는 실제로 우리를위한 옵션이 아닙니다 (GitHub 프로젝트에 대한 쓰기 권한을 부여하는 방법은 아닙니다). 보석을 쓰고 있다면 Travis를 순식간에 뛰어 들지만 실제 Rails 사이트는 아닙니다.
TALlama

2
기록을 위해 Travis CI는 곧 베타 버전 인 PRO (유료 및 개인) 버전을 곧 출시 할 예정입니다. 소규모 프로젝트의 경우 월 $ 129와 $ 249로 약간 비싸지 만 살펴볼 가치가 있습니다. travis-ci.com
Joshua Pinter

41

방법에 대한 CruiseControl.rb ?

CruiseControl에서 생각하고 글을 쓴 동일한 군중 Ruby. Rake다른 도구를 통합하는 데 사용 하기 매우 쉽고 알림에 루비 으르렁 한 보석을 사용할 수 있습니다 .


나는 이것을 Windows에서 실행시키는 데 어려움을 겪었습니다 ... 사이트의 '쉬운 일이 아닙니다'비디오에서 광고 된대로 작동하지 않았습니다.
Gishu

나는 Thinkworks 브랜딩에 동요하지 않을 것입니다-그것이 그것의 장점이라고 판단하십시오.
Dafydd Rees

이 프로젝트는 최근 유지하고 2009 년부터 새로운 버전을 출시하지 않았습니다하지만 그것은 작동합니다 ..
스콧 Schulthess

3
cruisecontrol은 매우 원시적이고 매우 구식입니다.
bragboy

1
2013 년 2 월 초까지 다양한 보안 관련 이벤트를 고려할 때 CruiseControl.rb를 기본 구성 (Gem 버전 등)으로 남겨 두는 것은 명백하지 않습니다. Rails 3.0.20에서 실행할 수 있었지만 3.2.11 이상은 분명히 더 많은 작업을 수행 할 것입니다. 이 시점에서 필자는 Jim Fiorato와 매우 유사한 요구 사항 목록을 가진 대안에 매우 개방적입니다.
Jeff Dickey

27

Hudson 을 고려할 수도 있습니다 . Ruby 및 Rake 지원을 포함하여 다양한 플러그인을 사용할 수 있지만 Java 프로젝트와 함께 사용하도록 설계되었습니다. 그것은 매우 유용한 웹 인터페이스를 가지고 있으며 이메일 알림뿐만 아니라 많은 다른 것들 (예 : 트위터 또는 거대한 곰 램프)을 지원합니다.

커뮤니티도 활발히 활동하고 있으며 브라우저 쪽에서 Rails 애플리케이션을 테스트하는 데 도움이 될 수있는 Hudson과 Selenium을 연결하는 방법에 대한 몇 가지 기사 가 있습니다.

또 다른 하나는 소규모 프로젝트 및 팀 (상업용 포함)에 무료 인 Team City 입니다. 저는 Team City를 정말 좋아하고 다른 프로젝트에 사용하기도했지만 현재는 소스 제어에 Mercurial을 사용하고 있으며 고려할 때 Team City의 지원은 약간 베타였습니다.

CruiseControl.net에서 Team City로 전환했고 개선에 완전히 충격을 받았습니다. 비슷한 기능과 매우 활동적인 커뮤니티로 인해 허드슨에게 편견이 있습니다.


2
TC의 경우 +1 내가 본 최고의 CI를 내려 받으십시오
Matt Briggs

4
오라클과의 창의적 차이로 인해 허드슨에게 정치적 문제가 발생한다는 경고를받습니다. 개발자의 대부분은 Jenkins라고 불리는 포크로 움직입니다. 오라클은 직원이 있으며 허드슨을 계속 지원하고 개발할 것입니다.
dondo

4
좋은 지적. Hudson의 지속적인 개발을 추적하는 데 관심이있는 사람은 jenkins-ci.org
Julian

젠킨스와 허드슨 개발 활동의 비교는 다음과 같습니다. ohloh.net/p/compare?project_0=Jenkins&project_1=
Vanuan

13

CircleRails (및 기타 웹 앱)를 위한 고급 CI 서비스입니다 . 목록에서 다음을 지원합니다.

  • Git and Test :: Unit 통합 ( RSpec, Cucumber, Jasmine, Konacha 통합 및 임의의 추가 테스트 명령 지원 )
  • Rake 및 / 또는 Capistrano와의 통합 ( Rake를 사용하여 명령 실행 및 DB 설정, Capistrano 또는 Heroku 등을 사용한 지속적인 배포 지원 )
  • 빌드 상태를 보여주는 웹 인터페이스
  • 실패한 빌드에 대한 이메일 알림.
  • 데스크탑 알림 ( CCMenu / CCTray를 통해 )
  • 빌드 상태를위한 REST API
  • UI에서 결과를 다른 코드 분석 도구를 실행하고보고하기위한 프레임 워크를 플러그인 ( 우리는 빌드의 일환으로 자신의 상태를 포함하여 임의의 명령과 지원을 실행할 수 있습니다 )

조엘과 나는에 이것에 대해 채팅을하면서 보냈다 유래 팟 캐스트 - 그것을 체크 아웃 !


면책 조항 : Paul Biggar는 Stackoverflow 프로파일에서 서클을 설립했습니다.


8

Semaphore 는 Ruby and Rails 앱을위한 새로운 호스팅 CI 앱입니다. GitHub와 통합되며 설정이 필요 없으며 간단한 UI가 있습니다.


우리는 Semaphore를 CI 제품군의 일부로 사용하고 있으며 환상적으로 작동합니다. 블로그 게시물 중 하나에서 Jasmine 및 HipChat과 같은 다른 소프트웨어와 어떻게 통합되는지 확인할 수 있습니다 . 또한 Opist는 Capistrano를 배포 도구로 사용하는 것에 대해서도 언급했습니다. 우리는 과거에 그것을 사용했지만 너무 느려서 Mina 로 전환했습니다 .
denis.arunovic 2014

8

2015 년 2 월 업데이트

코드 쉽

Drone.io에 대한 개발 부족이 있었으므로 Codeship으로 전환했으며 완전히 즐기고 있습니다. 적극적으로 개발되고 개선되었으며 훌륭한 디자인을 가지고 있으며 매우 빠릅니다. 또한 최하위 계층의 경우 실제로 무료 (매달 최대 100 빌드)이므로 Drone.io보다 저렴합니다.

원래 답변

드론

http://drone.io/로 기본 Ruby on Rails 애플리케이션을 설정했습니다 . 케이크 한 조각이었고 훌륭한 인터페이스를 얻었습니다. 간단한 호스팅 솔루션을 찾고 있다면 확인해 볼 가치가 있다고 말하고 싶습니다 .


7

Tddium을 확인하십시오 . Tddium은 Ruby 애플리케이션의 지속적인 통합, 배치 및 대화식 테스트를 지원합니다. Selenium, Headless Webkit 및 Solr을 지원하는 관리 환경을 제공합니다. 라이브 Postgres, MySQL, Mongo 및 Redis 인스턴스를 호스팅합니다. 또한 대규모 테스트 스위트를 자동으로 병렬화합니다.


5
제이, 당신은 tddium 및 solano lab과의 연관성을 드러내고 싶을 수도 있습니다. 당 자주 묻는 질문 : "당신은 당신의 답변에 소속을 공개해야"
TGF

7

Travis CI는 루비 세계에서 대중화되었습니다 : http://travis-ci.org/


Travis CI는 오픈 소스 프로젝트에는 적합하지만 실제로는 폐쇄 소스 프로젝트에는 적합하지 않습니다. Jenkins는 두 경우 모두를 다룰 수 있습니다 :-)
Gabor Garami

1
그러나 공개 소스가 아닌가? github.com/travis-ci/travis-ci 젠킨스 처럼 개인 트래비스 인스턴스를 설정할 수 없습니까?
Vanuan

당신은 아마 할 수 있지만, Readme에서는 그것을 반대하고 그것을 추천하지만 아직 개인 호스팅에 적합하지 않다고 언급합니다.
앤드류

이제 폐쇄 된 프로젝트에 적합합니다
aehlke


6

많은 사람들처럼 저는 cruisecontrol.rb의 열렬한 팬 이었지만 최근에 프로젝트를 Integrity 로 전환했습니다 .

가볍고 설정하기 쉬우 며 (cc.rb와 유사) 인터페이스가 더 좋습니다.


5
방금 Integrity를 ​​설정하려고했는데 엉망입니다.
로렌스

5

BigTuna -Ruby로 작성되었으며 Rails를 사용하고 자체 CI로 사용합니다.


3
BigTuna에 대한 appelier.com 링크는 만료 된 도메인으로 연결되지 않은 링크입니다. 프로젝트는 이제 Github 에서 찾을 수 있습니다 .
Jeff Dickey

5

Codeship 에 스핀을 제공하고 그것이 당신에게 효과 가 있는지 확인할 수 있습니다 (저는 설립자 중 하나입니다)

클라우드 기반의 지속적인 통합 및 배포 (특별한 Heroku 지원)

처음 네 항목은 이미 구현되어 여러 회사에서 잘 작동합니다.

  • 명백한 Git / SVN 및 Test :: Unit 통합
  • Rake 및 / 또는 Capistrano와 통합
  • 빌드 상태를 보여주는 웹 인터페이스
  • 실패한 빌드에 대한 이메일 알림.

우리는 그 기능들도 연구하고 있습니다 :

  • 바탕 화면 알림 (잠재적으로 Growl을 통해)
  • 빌드 상태를위한 REST API
  • UI에서 다른 코드 분석 도구를 실행하고 결과를보고하기위한 플러그인 프레임 워크



3

스스로 해. 테스트를 실행하기 위해 bash 스크립트를 작성한 다음 테스트가 통과되면 배치 절차를 실행하십시오. 알림이 필요하십니까? 성공 / 실패에 대한 일반 텍스트 이메일을 촬영하십시오. 스케줄러가 필요하십니까? Cronjob. 이것은 $ 0 / mo입니다. 그리고 당신은 무엇을하고 있는지에 대한 힌트를 얻게 될 것입니다. 나는 누군가에게 $ 40 / mo를 지불하는 것이 어떻게 더 효율적 으로이 작업을 수행하는 데 도움이되는지 알지 못합니다.

예를 들어 자산 파이프 라인이 잘못 구성되어 배포가 실패합니다 (자산이 사전 컴파일에 실패 함). 이것은 단위, 기능, 통합, 회귀 또는 기타 테스트에서 포착되지 않습니다. CI는이 오류를 포착하지 않습니다. bash 스크립트를 작성하는 데 소요되는 시간은 CI 환경을 설정하는 데 걸리는 시간보다 적을 것이며, $ 40 / mo를 절약 할 수 있습니다.

Juuuuuust는 토론에 내 두 동전을 던졌습니다. )


1

실행 코드 실행이 필요할 수 있습니다.

편집 : 링크가 더 이상 이전 실행 코드 실행 사이트를 참조하지 않으므로 제거되었습니다.


1
이제 종료하려고합니다. :(
Andrew Grimm


1

나는 CI joe 만 좋아하고 나머지는 모두 문제가 있었으며 CI Joe는 작업을 완료하는 데있어 최소한의 민첩하고 신뢰할 수있는 절대 최소값입니다. 허드슨 소스는 끔찍하며 UI는 나에게 호소력이 없습니다.


0

방금 RubyOnRails + SVN / GIT를위한 매우 간단한 Continuous Integration App을 게시했습니다. 어쩌면 시도해보십시오 :

http://github.com/felipegiotto/Inotegration/tree/master

측정 및 테스트 도구에 대한 아이디어를 얻었고 CI 도구를 사용 해보고 그중 누구도 좋아하지 않은 후에 큰 XML 파일이나 다른 구성을 만들 필요없이 내 자신의 빌드를 결정했습니다. Rails가 만들어지는 방식.

원하는 경우 의견을 보내 주시기 바랍니다 ..

친애하는,

펠리페 지오토.


0

"커밋하기"철학에 가입하면 모든 커밋 후에 CI를 실행하는 것이 다소 비싸 보입니다. 몇 시간마다 간단한 cronjob을 실행하고 결과를 개발자 메일 링리스트에 이메일로 보내면 어떨까요?


아니면 한 시간에 한 번만 변경 사항을 폴링하도록 CI 서버를 설정하는 방법은 무엇입니까? 대부분의 CI 앱은이 설정을 지원합니다.
jerhinesmith

2
git을 사용하면 커밋을 자주 할 수 있지만 거의 푸시하지 않습니다.
Vanuan

0

방금 Hudson / Jenkins를 구성했습니다. ci_reporter gem은 Hudson이 기대하는 JUnit 출력의 형식을 지정하는 데 도움을 줄 수 있으며 Hudson은 Rails 플러그인을 가지고 있으므로 rcov 적용 범위, 테스트 보고서, 레일 통계 등을 볼 수 있습니다.


설정을 다른 대안과 비교할 수 있습니까?
Andrei

프로덕션 프로젝트에 Rails 2.3.x를 사용하면서 현재는 그렇지 않습니다. 다른 대안으로는 Rails 3.x가 필요하기 때문입니다. 그러나 가능하면 테스트하고 경험을 게시합니다.
Gabor Garami

Rails 3.x로 Jenkins도 사용해 보았고 잘 작동합니다. 다른 솔루션 (예 : IntegrityApp)도 시도했지만 Jenkins를 사용하여 다른 프로젝트를 테스트했기 때문에 최종 솔루션이되었습니다. 그것은 IntegrityApp 또는 다른 것들이 나쁘다는 것을 의미하지는 않지만 IntegrityApp은 매우 좋은 것들이지만 Jenkins를 조금 더 좋아합니다.
Gabor Garami

0

CloudMunch도 고려해야합니다. 이는 풍부한 빌드 메타 데이터 세트를 사용하여 코드베이스의 일부로 다른 언어를 사용할 수있는 폴리 글 로트 플랫폼을 제공합니다.

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