Ich habe nach einer Continuous Integration-Lösung für Ruby on Rails gesucht, war aber mit den Ergebnissen nicht allzu zufrieden. Ich kam aus einem .NET-Shop, der CruiseControl.NET verwendete, und war mit seiner Benutzerfreundlichkeit und dem umfangreichen Status / Berichterstellung wirklich verwöhnt.
Idealerweise suche ich:
Die offensichtliche Integration von Git / SVN und Test :: Unit
Integration mit Rake und / oder Capistrano
Eine Webschnittstelle, die den Status des Builds anzeigt
E-Mail-Benachrichtigung über fehlgeschlagene Builds.
Desktop-Benachrichtigung (möglicherweise über Growl)
REST-API für Build-Status
Plugin-Framework zum Ausführen anderer Code-Analyse-Tools und zum Berichten von Ergebnissen in der Benutzeroberfläche
ruby-on-rails
ruby
continuous-integration
Jim Fiorato
quelle
quelle
Antworten:
Ich habe gerade die Optionen hier durchgesehen und dachte, ich würde sie ab Ende 2011 zusammenfassen.
Integrität
Nach einer Nahtoderfahrung , bei der die noch verlinkte Website mit veralteten Informationen verlassen und die Demo-Website heruntergefahren wurde, hat dieses Projekt wieder einen Funken Leben. Aber die Dokumentation ist nicht weitergegangen, und viele, viele Schritte im Tutorial sind einfach kaputt . Ich musste Verweise auf Edelsteine ändern, einige Dinge aus der Band heraus bauen, und dann konnte ich es immer noch nicht zum Laufen bringen .
Tempomat.rb
Ganz einfach : Laden Sie es einfach herunter, führen Sie eine Befehlszeile aus, um Ihr Projekt hinzuzufügen (es gibt keine Benutzeroberfläche dafür), und führen Sie die Rails-App aus. Aber es gibt auch keine Benutzeroberfläche zum Bearbeiten Ihres Projekts und es gibt keine echte Integration mit Build-Artefakten, abgesehen von der Anzeige von Links zu diesen: Sie erhalten keine Diagramme von Testläufen, keine Trendlinien usw. Ich musste auch die
routes.rb
Datei anpassen, um die zu erhalten Codeverknüpfung funktioniert (dieresources :projects
Linie muss sich unter alle anderen nicht standardmäßigen Routen bewegen).TeamCity
Das sieht fantastisch aus , aber die Gehaltsskala scheint aus dem Ruder gelaufen zu sein. 3 Agenten frei und wenn Sie abhängig sind, müssen Sie Hunderte von Dollar ausgeben. Personal Builds sieht gut aus, hat aber nicht das Budget .
Jenkins (geb. Hudson )
Dies ist ein stabiles Java-System , das mit tausend Optionen ausgestattet ist. Die Benutzeroberfläche ist also verwirrend und das Einrichten Ihrer Projekte ist mühsam . Aber sobald Sie es eingerichtet haben, erhalten Sie eine ganze Reihe von Plugins , die von fast überall abgerufen werden können, fast alles ausführen und fast alles melden können. Das OS X Installer verweist Jenkins
/Users/Shared/Jenkins/Home
aber nicht das Verzeichnis erstellen oderchown
siedaemon
(die als Standard verwendet, und Sie sollten auf einen neuen ändernjenkins
Benutzer , so dass Sie GitHub Integration einrichten können).Andere
Ich habe diese nicht wirklich ausprobiert, dachte aber, ich würde erwähnen, warum:
Die Wahl
Wir sind mit Jenkins gegangen , aber ich wünschte wirklich, eine der leichteren Lösungen hätte funktioniert.
quelle
Wie wäre es mit CruiseControl.rb ?
CruiseControl
Dieselbe Menge, die es getan hat (Gedankenarbeit) und geschrieben hatRuby
. Sehr einfach zu verwenden,Rake
um Ihre anderen Tools zu integrieren, und kann das Rubin-Knurren- Juwel für Ihre Benachrichtigungen verwenden.quelle
Vielleicht möchten Sie auch Hudson in Betracht ziehen . Es wurde für die Verwendung mit Java-Projekten entwickelt, obwohl eine große Auswahl an Plug-Ins verfügbar ist, einschließlich der Unterstützung von Ruby und Rake. Es hat eine sehr nützliche Weboberfläche und unterstützt E-Mail-Benachrichtigungen sowie viele andere (wie Twitter oder riesige Bärenlampen).
Die Community ist auch sehr aktiv und es gab mehrere Artikel über das Anschließen von Hudson an Selen, die Sie möglicherweise beim Testen von Rails-Anwendungen auf der Browserseite unterstützen.
Ein weiterer Blick ist Team City, das für kleine Projekte und Teams (einschließlich Werbung) kostenlos ist. Ich mag Team City sehr und habe es bereits für andere Projekte verwendet, aber derzeit verwenden wir Mercurial für die Quellcodeverwaltung, und die Unterstützung von Team City war etwas zu Beta, als wir darüber nachdachten.
Ich wechselte von CruiseControl.net zu Team City und war absolut schockiert über die Verbesserung. Ich bin jedoch ein Teil von Hudson, weil es ähnliche Funktionen und eine sehr aktive Community bietet.
quelle
Circle ist ein erweiterter CI-Dienst für Rails (und andere Web-Apps). Aus Ihrer Liste wird Folgendes unterstützt:
Joel und ich unterhielten uns eine Weile im Stackoverflow-Podcast darüber - probieren Sie es aus !
(Bearbeiten) Haftungsausschluss: Paul Biggar gründete Circle, wie er in seinem Stackoverflow-Profil angibt
quelle
Semaphore ist eine neue gehostete CI-App für Ruby- und Rails-Apps. Es lässt sich in GitHub integrieren, erfordert kein Setup und verfügt über eine einfache Benutzeroberfläche.
quelle
Aktualisiert im Februar 2015
Codeship
Es gab einen Mangel an Entwicklung auf Drone.io, also bin ich zu Codeship gewechselt und es macht mir großen Spaß. Es ist aktiv entwickelt und verbessert, hat ein tolles Design und ist sehr schnell. Außerdem ist es für die unterste Stufe kostenlos (bis zu 100 Builds pro Monat), sodass es billiger als Drone.io ist.
Ursprüngliche Antwort
Drone.io
Ich habe gerade unsere Hauptanwendung Ruby on Rails mit http://drone.io/ eingerichtet . War ein Kinderspiel und es hat eine tolle Oberfläche. Ich würde sagen, es lohnt sich zu prüfen, ob Sie nach einer einfachen, gehosteten Lösung suchen .
quelle
Schauen Sie sich Tddium an . Tddium unterstützt die kontinuierliche Integration, Bereitstellung und interaktive Prüfung von Ruby-Anwendungen. Es bietet eine verwaltete Umgebung mit Unterstützung für Selenium, Headless Webkit und Solr. Es hostet Live-Instanzen von Postgres, MySQL, Mongo und Redis. Und große Testsuiten werden automatisch parallelisiert.
quelle
Travis CI ist in der Rubinwelt populär geworden: http://travis-ci.org/
quelle
cruisecontrol.rb wäre dann die perfekte Ergänzung.
http://cruisecontrolrb.thoughtworks.com/
quelle
Wie viele andere war ich ein großer Fan von cruisecontrol.rb, habe aber kürzlich meine Projekte auf Integrity umgestellt .
Leicht und einfach einzurichten (ähnlich wie cc.rb), aber mit einer schöneren Oberfläche.
quelle
BigTuna - geschrieben in Ruby, verwendet Rails und verwendet sich selbst als CI.
quelle
Sie können Codeship ausprobieren und sehen, ob es für Sie funktioniert (ich bin einer der Gründer).
Cloud-basierte kontinuierliche Integration und Bereitstellung (mit spezieller Heroku-Unterstützung)
Die ersten vier Ihrer Elemente sind bereits implementiert und funktionieren für eine Reihe von Unternehmen einwandfrei
Wir arbeiten auch an diesen Funktionen:
quelle
Niemand erwähnte hier Atlassians Bambus. Es gibt einen schönen Tutorial-ähnlichen Artikel über Ruby on Rails CI mit Bamboo:
http://blogs.atlassian.com/news/2009/05/bamboo_customer_8.html
quelle
Integrität scheint eine großartige Lösung zu sein. Die Bereitstellung auf Heroku ist ein Kinderspiel: http://elabs.se/blog/7-continuous-integration-testing-for-ruby-on-rails-with-integrity http://integrityapp.com
quelle
Mach es selbst. Schreiben Sie ein Bash-Skript, um Tests auszuführen, und führen Sie dann eine Bereitstellungsprozedur aus, wenn die Tests erfolgreich sind. Benötigen Sie Benachrichtigungen? Schießen Sie sich eine Klartext-E-Mail über Erfolg / Misserfolg. Benötigen Sie einen Scheduler? Cron-Job. Dies ist $ 0 / Monat, und Sie haben eine Ahnung, was Sie tun. Ich sehe nicht ein, wie mir die Zahlung von 40 USD / Monat dabei helfen kann, dies effizienter zu gestalten.
Betrachten Sie zum Beispiel: Meine Bereitstellung schlägt aufgrund einer falsch konfigurierten Asset-Pipeline fehl (Assets können nicht vorkompiliert werden). Dies wird nicht mit Einheiten-, Funktions-, Integrations-, Regressions- oder anderen Tests erfasst. Dieser Fehler wird von CI nicht abgefangen. Die Zeit, die ich für das Schreiben eines Bash-Skripts aufwenden würde, ist wahrscheinlich geringer als die Zeit, die ich für die Einrichtung einer CI-Umgebung aufwenden würde, und ich spare mir 40 US-Dollar pro Monat.
Juuuuuust warf meine zwei Pennys in die Diskussion; )
quelle
Run Code Run könnte das sein, was Sie brauchen.
Bearbeiten: Link entfernt, da er nicht mehr auf die frühere Run Code Run-Site verweist.
quelle
Und dann ist da noch CI Joe :
Wir benutzen es täglich.
quelle
Ich mag nur CI Joe, ich hatte Probleme mit allen anderen, CI Joe ist das absolute Minimum, um die Arbeit zu erledigen, super agil und zuverlässig. Die Hudson-Quelle ist schrecklich und die Benutzeroberfläche spricht mich nicht an.
quelle
Ich habe gerade eine sehr einfache Continuous Integration App für RubyOnRails + SVN / GIT veröffentlicht. Vielleicht sollten Sie es versuchen:
http://github.com/felipegiotto/Inotegration/tree/master
Ich nahm einige Ideen zu Mess- und Testwerkzeugen auf und nachdem ich einige CI-Werkzeuge ausprobiert hatte und niemanden davon mochte, beschloss ich, meine eigenen zu erstellen, ohne große XML-Dateien oder andere Konfigurationen erstellen zu müssen. Genau so, wie Rails gemacht wurde.
Wenn Sie möchten, senden Sie mir bitte ein Feedback.
Freundliche Grüße,
Felipe Giotto.
quelle
Das Ausführen von CI nach jedem Commit scheint ziemlich teuer zu sein, wenn Sie die Philosophie "Commit häufig" abonnieren. Wie wäre es, wenn Sie alle paar Stunden einen einfachen Cronjob ausführen und die Ergebnisse per E-Mail an eine Entwickler-Mailingliste senden?
quelle
Ich habe gerade einen Hudson / Jenkins dafür konfiguriert. Das Juwel ci_reporter kann dabei helfen, die von Hudson erwartete JUnit-Ausgabe zu formatieren, und Hudson verfügt über ein Rails-Plugin, sodass ich RCOV-Abdeckung, Testberichte, Rails-Statistiken und vieles mehr sehen kann.
quelle
Sie sollten sich auch CloudMunch ansehen. Dies bietet eine polyglotte Plattform, mit der Sie verschiedene Sprachen als Teil Ihrer Codebasis mit umfangreichen Build-Metadaten verwenden können.
quelle