it-swarm.com.de

Kontinuierliche Integration für Ruby on Rails?

Ich habe nach einer Continuous Integration-Lösung für Ruby on Rails) gesucht, war aber nicht besonders zufrieden mit den Ergebnissen wirklich verwöhnt mit seiner Benutzerfreundlichkeit und reichhaltigen Status/Berichterstattung.

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 Erstellungsstatus

  • Plug-in-Framework zum Ausführen anderer Codeanalyse-Tools und zum Berichten von Ergebnissen in der Benutzeroberfläche

149
Jim Fiorato

Ich habe gerade die Optionen hier durchgesehen und dachte, ich würde sie ab Ende 2011 aufrollen.

Integrität

Nach einer Nahtoderfahrung , die die noch verlinkte Website mit verließ veraltete Informationen und die Demoseite heruntergefahren, hat dieses Projekt wieder ein spark des Lebens. Aber die Dokumentation ist nicht weitergegangen und viele der Schritte im Tutorial sind einfach gebrochen ; Ich musste die Referenzen zu Edelsteinen ändern, einige Dinge außerhalb der Band aufbauen und dann konnte ich es immer noch nicht zum Laufen bringen .

Cruise Control.rb

Ganz einfach : Sie laden es einfach herunter, führen eine Befehlszeile aus, um Ihr Projekt hinzuzufügen (es gibt keine Benutzeroberfläche und starte die Rails App. Aber es gibt auch keine Benutzeroberfläche zum Bearbeiten Ihres Projekts, und es gibt keine echte Integration in Build-Artefakte , abgesehen davon, dass Links zu diesen angezeigt werden: Sie erhalten keine Testdiagramme Laufen, keine Trendlinien usw. Ich musste auch die Datei routes.rb anpassen, damit die Codeverknüpfung funktioniert (die Zeile resources :projects muss unter alle anderen nicht standardmäßigen Routen verschoben werden).

TeamCity

Dies sieht fantastisch aus , aber die Gehaltsskala scheint aus dem Ruder zu laufen. 3 Agenten frei und dann, wenn Sie abhängig sind, müssen Sie Hunderte von Dollar austeilen. Persönliche Builds sehen toll aus, aber haben nicht das Budget .

Jenkins (geb. Hudson )

Dies ist ein Java unerschütterlich und es ist mit tausend Optionen geladen , so dass die Die Benutzeroberfläche ist verwirrend und es ist eine Aufgabe, Ihre Projekte einzurichten . Aber sobald Sie es eingerichtet haben, erhalten Sie eine ganze Reihe von Plugins , die von fast jedem Ort aus aufgerufen, fast alles ausgeführt und fast alles gemeldet werden können. Das OS X-Installationsprogramm zeigt Jenkins auf /Users/Shared/Jenkins/Home, Kann dieses Verzeichnis jedoch nicht erstellen oder chown auf daemon (wird standardmäßig verwendet und Sie sollten zu einem neuen wechseln jenkins Benutzer, damit Sie die GitHub-Integration einrichten können).

Andere

Ich habe diese nicht wirklich ausprobiert, dachte aber, ich würde erwähnen, warum:

  • CI Joe möchte das GitHub-Repo mehr besitzen, als ich möchte, und seine Schöpfer verwenden es nicht einmal. Sie sind auf Jenkins.
  • Cerberus scheint ordentlich klein zu sein, hat aber keine Benutzeroberfläche und veröffentlicht Build-Artefakte nicht automatisch dort, wo andere sie sehen können.
  • BigTuna scheint ein CruiseControl.rb-Klon ohne die (bereits minimale) Community-Unterstützung zu sein.
  • Bambus sieht wirklich gut aus, wenn Sie JIRA und BitBucket verwenden, aber wir verwenden keine. Es wird bereitgestellt, aber wir haben bereits solche in Capistrano eingerichtet.

Die Wahl

Wir gingen mit Jenkins , aber ich wünschte wirklich, eine der leichteren Lösungen hätte geklappt.

83
TALlama

Wie wäre es mit CruiseControl.rb ?

Dieselbe Menge, die CruiseControl (Gedanken) getan und in Ruby geschrieben hat. Sehr einfach, Rake zu verwenden, um Ihre anderen Tools zu integrieren, und das Juwel Ruby-growl für Ihre Benachrichtigungen zu verwenden.

41
craigb

Vielleicht möchten Sie auch Hudson . Es wurde für die Verwendung mit Java Projekten entwickelt, obwohl es eine große Auswahl an Plug-Ins gibt, einschließlich der Unterstützung für Ruby und Rake. Es hat ein sehr nützliches Web Schnittstelle und unterstützt E-Mail-Benachrichtigungen sowie viele andere (wie Twitter oder Riesenbärenlampen).

Die Community ist auch sehr aktiv und es gab mehrere Artikel beim Verbinden von Hudson mit Selenium, die Sie beim Testen von Rails Anwendungen auf der Browserseite) hilfreich sein könnten.

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 der Support von Team City war etwas zu Beta, als wir darüber nachdachten.

Ich bin von CruiseControl.net zu Team City gewechselt und war absolut schockiert über die Verbesserung. Ich bin allerdings ein Teil von Hudson wegen seiner ähnlichen Funktionen und seiner sehr aktiven Community.

27
Julian

Circle ist ein erweiterter CI-Service für Rails (und andere Web-Apps). Aus Ihrer Liste unterstützt es Folgendes:

  • Git- und Test :: Unit-Integration ( auch RSpec-, Cucumber-, Jasmine-, Konacha-Integrationen und unterstützt beliebige zusätzliche Testbefehle =)
  • Integration mit Rake und/oder Capistrano ( verwendet Rake zum Ausführen von Befehlen und zum Einrichten von DBs, zur Unterstützung der kontinuierlichen Bereitstellung mit Capistrano oder Heroku oder anderem wirklich)
  • Eine Weboberfläche, die den Status des Builds anzeigt
  • E-Mail-Benachrichtigung über fehlgeschlagene Builds.
  • Desktop-Benachrichtigung ( über CCMenu/CCTray)
  • REST-API für Build-Status
  • Plugin-Framework zum Ausführen anderer Codeanalyse-Tools und zum Berichten von Ergebnissen in der Benutzeroberfläche ( wir können beliebige Befehle ausführen und unterstützen, einschließlich ihres Status als Teil von der Build)

Joel und ich unterhielten uns darüber im Stackoverflow-Podcast - check it out !


(bearbeiten) Haftungsausschluss: Paul Biggar gründete Circle, wie er in seinem Stackoverflow-Profil angibt

14
Paul Biggar

Semaphore ist eine neue gehostete CI-App für Ruby und Rails Apps. Sie lässt sich in GitHub integrieren, erfordert kein Setup und ist einfach Benutzeroberfläche.

8
marko

Aktualisiert im Februar 2015

Codeship

Auf Drone.io fehlte die Entwicklung, so dass ich zu Codeship gewechselt bin und es sehr genieße. Es wird aktiv weiterentwickelt und verbessert, hat ein tolles Design und ist sehr schnell. Außerdem ist es für die unterste Ebene 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/ . War ein Kinderspiel und Ich würde sagen, es lohnt sich, nach einer einfachen, gehosteten Lösung zu suchen .

8
Joshua Pinter

Travis CI ist in der Ruby Welt populär geworden: http://travis-ci.org/

7
Vanuan

Check out Tddium . Tddium unterstützt die kontinuierliche Integration, Bereitstellung und das interaktive Testen von Ruby) - Anwendungen. Es bietet eine verwaltete Umgebung mit Unterstützung für Selen, Headless Webkit und Solr. Es hostet Live-Postgres-, MySQL-, Mongo- und Redis-Instanzen Und große Testsuiten werden automatisch parallelisiert.

7
Jay Moorthi

cruisecontrol.rb wäre dann die perfekte Ergänzung.

http://cruisecontrolrb.thoughtworks.com/

6
madlep

Wie eine Reihe von Leuten 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.

6
csexton

BigTuna - In Ruby geschrieben, verwendet Rails und verwendet sich selbst als CI.

5
oma

Sie können Codeship eine Runde drehen 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 Artikel sind bereits implementiert und funktionieren für eine Reihe von Unternehmen einwandfrei

  • 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.

Wir arbeiten auch an diesen Funktionen:

  • Desktop-Benachrichtigung (möglicherweise über Growl)
  • REST-API für Erstellungsstatus
  • Plug-in-Framework zum Ausführen anderer Codeanalyse-Tools und zum Berichten von Ergebnissen in der Benutzeroberfläche
5
Florian Motlik

Mach es selbst. Schreiben Sie ein Bash-Skript, um Tests auszuführen, und führen Sie dann eine Bereitstellungsprozedur aus, wenn die Tests bestanden wurden. 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 werden eine Ahnung haben, was Sie tun. Ich verstehe nicht, wie mir das Bezahlen von 40 US-Dollar pro Monat dabei helfen wird, das in irgendeiner Weise effizienter zu machen.

Angenommen, meine Bereitstellung schlägt aufgrund einer falsch konfigurierten Asset-Pipeline fehl (Assets können nicht vorkompiliert werden). Dies wird nicht mit Unit-, 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 das Einrichten einer CI-Umgebung aufwenden würde, und ich spare mir 40 USD/Monat.

Juuuuuust, der meine zwei Pennys in die Diskussion wirft; )

3
Victor Piousbox
3
Kirill Maximov

Niemand erwähnte hier Atlassians Bambus. Es gibt einen netten Tutorial-ähnlichen Artikel über Ruby on Rails CI using Bamboo:

http://blogs.atlassian.com/news/2009/05/bamboo_customer_8.html

3
Nowaker

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

3
avocade

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.

1
Brent Greeff

Run Code Run könnte das sein, was Sie brauchen.

Bearbeiten: Der Link wurde entfernt, da er nicht mehr auf die frühere Run Code Run-Site verweist.

1
Todd Stout

Und dann gibt es CI Joe :

Es ist wie bei einem alten rostigen Kleintransporter: Es mag stinken und ekelhaft sein, aber es erledigt die Arbeit.

Wir verwenden es täglich.

1
Hakan Ensari

Ich habe gerade eine sehr einfache Continuous Integration App für RubyOnRails + SVN/GIT veröffentlicht. Vielleicht solltest du es versuchen:

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

Ich habe mir einige Ideen zu Mess- und Testwerkzeugen gemacht, und nachdem ich einige CI-Werkzeuge ausprobiert hatte und keine davon mochte, habe ich beschlossen, meine eigenen zu erstellen, ohne große XML-Dateien oder andere Konfigurationen erstellen zu müssen. Genau so wurde Rails gemacht, um zu sein.

Wenn Sie möchten, senden Sie mir bitte ein Feedback.

Freundliche Grüße,

Felipe Giotto.

0
Felipe Giotto

Das Ausführen von CI nach jedem Commit scheint ziemlich teuer zu sein, wenn Sie die Philosophie "Oft Commiten" 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?

0
JasonOng

Sie sollten auch CloudMunch in Betracht ziehen. Dies bietet eine mehrsprachige Plattform, mit der Sie verschiedene Sprachen als Teil Ihrer Codebasis mit umfangreichen Build-Metadaten verwenden können.

0
Prasanna

Ich habe gerade einen Hudson/Jenkins dafür konfiguriert. Der ci_reporter Gem kann beim Formatieren der JUnit-Ausgabe helfen, was von Hudson erwartet wird, und Hudson hat ein Rails Plugin, damit ich die RCOV-Abdeckung, Testberichte, Rails) sehen kann Statistiken und noch mehr.

0
Gabor Garami