Frage

Ich bin ein Ruby on Rails Website Entwicklung Heroku und git verwendet wird.

Was Tools und Funktionen sollen ich den folgenden einfachen Entwicklungsprozess einzurichten?

CODE> CHECK-IN> AUTO TEST> AUTO DEPLOY

  • ich meinen Code in mein Repository (bevorzugte Option, gehostet git wie Github) überprüfen
  • Tests werden automatisch ausgeführt und Website wird in meiner Inszenierung eingesetzt Heroku App
  • Wenn die Tests übergeben, wird die Website automatisch auf meiner Produktion Heroku Anwendung bereitgestellt
  • Wenn die Tests fehlschlagen, möchte ich irgendwie mitgeteilt werden.

Wie würden Sie das tun?

War es hilfreich?

Lösung

Wir verwenden Integrität . Es ist eine ziemlich einfache Lösung - es wird nicht alles unter der Sonne tun, aber es ist ganz einfach einzurichten und Griffe die häufigsten Anwendungsfälle / kennzeichnet. Es ist auch recht einfach auf hacken, wenn Sie es wollen, mehr zu tun.

Integrität heißt es:

  

Heroku ist die einfachste und schnellste Weg, Integrität zu implementieren.

Allerdings:

  

Hinweis
  Es ist nicht möglich, den Zugriff auf Repositories über SSH auf Heroku

Dies liegt daran, Ihre Integrität App wird ein SSH-Schlüssel benötigen. Es ist nicht unmöglich, aber auf jeden Fall ein paar Reifen zu springen durch. Sie müssen Integrität geben, einen privaten Schlüssel und es in der App setzen, und dann Integrität Hack, die SSH-Schlüssel zu verwenden, wenn es die git clone einleitet.

Von den Dingen, die Sie aufgelistet, die automatische deploy ist wahrscheinlich das, was die meisten Leute würden nicht ihr CI-Server erwarten zu tun (und Integrität liefert nicht aus der Box). Sie werden zu konfigurieren git müssen, dass SSH-Schlüssel zu verwenden und eine git push aus der richtigen Stelle zu initiieren (das Repository ausgecheckt).

Leider weiß ich nicht, die Details, wie dies zu tun -. Wir Integrität tatsächlich laufen auf einem VPS

Andere Tipps

CircleCi bietet genau das, was Sie brauchen. Wir werden Ihre Tests auf jedem Druck laufen, stellen Sie sie, wenn sie (auf Heroku oder mit Capistrano / Stoff / etwas wirklich) passieren, und Sie Mitteilungen senden, wenn sie scheitern.

Vorwort Ich bin einer der Gründer von Codeship ( https://codeship.io ), die eine Dienstleistung dass Träger genau dies.

Aber mehr zum Thema, im Grunde gibt es zwei verschiedene Möglichkeiten, ich denke, das umgesetzt werden könnte (im Auge behalten bitte, dass alle Zweignamen ich willkürlich verwenden und können ganz anders benannt werden):

Staging / Produktion in einem Rutsch

Wenn Sie Ihr Master-Push oder einem bestimmten deploy Zweig Sie Ihre Tests ausführen und wenn alle von ihnen übergeben Sie zuerst deploy zu Staging-App, laufen separate Tests (Selen oder Sauce Labs ist für das), und wenn das klappt einschließlich Migrationen Sie Ihre Produktion App schieben.

Dies ist groß, wie die neueste Version in der Produktion immer verfügbar ist und wir nutzen diesen Zyklus für eine lange Zeit. Funktioniert gut für uns. Der Nachteil ist, dass auf eine Inszenierung Heroku App drängen einige Zeit in Anspruch nimmt. Wenn Sie die Migration gegen eine Kopie der Produktionsdaten das dauert noch mehr Zeit ausgeführt werden sollen. Es ist nicht eine Ewigkeit, aber es dauert ein paar Minuten.

Staging / Produktion als getrennte Schritte

Sie könnten getrennte Staging / Produktionszweige haben, die auf die jeweiligen Heroku Anwendungen eingesetzt werden. Dies hat den Vorteil, dass sie schneller und Sie können steuern, wenn bestimmte Teile zu lösen. Speziell für Anwendungen, bei denen Sie externe Feedback möchten, bevor die Produktion der Bereitstellung funktioniert dies sehr gut.

Wir alle, dass bei Railsonfire unterstützen, aber wir arbeiten derzeit an einer neuen Version unseres Service, die Art und Weise besser ist. Wir integrieren wirklich gut mit Heroku so dass Sie nicht darüber nachdenken müssen (aber immer noch die Möglichkeit haben, es zu tun, sich in irgendeiner Weise Sie wollen)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top