Domanda

sto sviluppando un rubino sul sito rotaie utilizzando Heroku e git.

Quali sono gli strumenti e le funzionalità dovrei usare per impostare il seguente processo di sviluppo semplice?

CODE> CHECK-IN> AUTO TEST> Distribuzione automatica

  • I controllare il mio codice nel mio repository (opzione preferita, git ospitato come github)
  • I test vengono eseguiti automaticamente e il sito viene distribuito nella mia messa in scena Heroku app
  • Se i test passano, il sito viene distribuito automaticamente sulla mia produzione Heroku app
  • Se i test falliscono, voglio essere avvisato in qualche modo.

Come si dovrebbe fare questo?

È stato utile?

Soluzione

Integrità . Si tratta di una soluzione abbastanza semplice - non farà tutto sotto il sole, ma è abbastanza facile da configurare e gestisce la maggior parte dei casi di uso comune / caratteristiche. E 'anche abbastanza facile da incidere in poi, se si vuole fare di più.

L'integrità afferma:

  

Heroku è il modo più semplice e veloce per distribuire Integrità.

Tuttavia:

  

NOTA
  Non è possibile repository di accesso su SSH su Heroku

Questo è perché la vostra integrità applicazione avrà bisogno di una chiave SSH. Non è impossibile, ma sicuramente un paio di cerchi per saltare attraverso. Avrai bisogno di dare l'integrità di una chiave privata e metterlo in app, e quindi incidere integrità di usare quella chiave SSH quando si avvia il git clone.

Tra le cose che hai elencato, il deploy automatico è probabilmente la cosa maggior parte delle persone non si aspettano loro server CI da fare (e integrità non fornire out of the box). È necessario configurare git per utilizzare la chiave SSH e avvia una git push dalla posizione corretta (il controllato fuori repository).

Purtroppo non so i dettagli di come fare questo -. Abbiamo effettivamente corriamo integrità su un VPS

Altri suggerimenti

CircleCi offre esattamente quello che hanno bisogno. Faremo i test su ogni spinta, distribuirli se passano (a Heroku o utilizzando Capistrano / Tessuto / nulla di veramente), e inviare le notifiche se falliscono.

per prefazione Io sono uno dei fondatori di Codeship ( https://codeship.io ), che è un servizio che sostiene proprio questo.

Ma più in tema, in fondo ci sono 2 modi diversi credo che questo potrebbe essere implementato (si prega di tenere presente che tutti i nomi di filiale che uso sono arbitrarie e possono essere nominati totalmente diverso):

staging / produzione in un colpo solo

Ogni volta che si spinge al tuo padrone o un ramo specifico Deploy si eseguono i test e se tutti loro si passa prima alla distribuzione al vostro messa in scena app, esegue prove distinte (selenio o laboratori di salsa è grande per questo) e se questo funziona tra cui le migrazioni si spinge per la vostra applicazione di produzione.

Questo è grande come l'ultima versione è sempre disponibile nella produzione e usiamo questo ciclo per molto tempo. Funziona alla grande per noi. Lo svantaggio è che spinge ad un'applicazione messa in scena Heroku richiede un certo tempo. Se si desidera eseguire le migrazioni contro una copia dei dati di produzione questo richiede ancora più tempo. Non è un'eternità, ma ci vuole un paio di minuti.

staging / produzione, come fasi separate

Si potrebbe avere rami di sosta / produzione separate che sono dispiegati per le rispettive applicazioni Heroku. Questo ha il vantaggio di essere più veloce ed è possibile controllare quando rilasciare alcune parti. Specialmente per le applicazioni in cui si desidera un feedback esterno prima di andare in produzione questa grande opera.

supporta tutto questo a Railsonfire, ma al momento stiamo lavorando su una nuova versione del nostro servizio, che è il modo migliore. Integriamo molto bene con Heroku in modo da non dover pensare a questo (ma hanno ancora la possibilità di farlo da soli in qualsiasi modo si vuole)

Ci sono molti strumenti sul mercato che fare questo. SnapCI offerte condutture di distribuzione che consentono di spingere ogni commit attraverso test e poi successivamente in staging e produzione diverse fasi di una pipeline distribuzione. Abbiamo anche il supporto completo per la prova di parallelizzazione, la costruzione di rami e pull-richieste.

Bene, c'è Hudson che fornisce un plugin git così come supporto per lo scripting. Il resto è di configurazione, direi.

Hudson: http://hudson.dev.java.net

Heroku-Bartender . Una scrittura-up qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top