2010-10-04 7 views
8

Il mio cofondatore e io stiamo impostando il nostro server per la nostra startup. Stiamo usando git per il nostro controllo del codice sorgente e il progetto è django seduto dietro nginx via fcgi su Ubuntu. Dato che siamo appena all'inizio, e per rendere le distribuzioni facili su entrambi, ho in mente di avere un semplice script di distribuzione che vive sul server che attiverà automaticamente le ultime modifiche al codice da git e quindi le distribuirà.Le migliori soluzioni per la distribuzione da git alla produzione?

So che posso scrivere manualmente uno script bash o python che lo farà, ma speravo di scoprire prima se ci sono altre soluzioni software relativamente facili da utilizzare. In questa fase, abbiamo ancora poco interesse per la distribuzione continua, ma sto pensando che potrebbero esserci alcuni pacchetti in quel dominio che potrebbero esserci utili.

risposta

7

Ci sono un paio di opzioni:

  1. Hosting un repository git sul server per spingere a, che controlla automagicamente la versione più recente. More on this here, controlla anche questa soluzione detached git tree.

  2. Utilizzare qualcosa come fabric con rsync o simile.

Tipicamente io avrebbe un repo git linea con la configurazione gancio post-aggiornamento per un ramo specifico (solitamente "live"). Quindi è una questione di git remote add -t live live ssh://... sul mio portatile e uno git push live per ottenere le cose spinte. Avrai anche bisogno di qualcosa per riavviare il server Django affinché il nuovo codice abbia effetto (potrebbe farlo all'interno del gancio o ssh/fabric).

Per progetti futuri, sto sperimentando il git tree distaccato (sembra più elegante) combinato con il tessuto.

+0

Stavo leggendo su tessuto poche ore fa. Domani darò un'occhiata più da vicino. Grazie. – Geuis

+0

le soluzioni "git tree distaccate" sembrano essere molto interessanti! grazie per il suggerimento – aurora

-1

git archive <release-branch> | tar -x -C /path/to/live/site è davvero qualcosa per cui è necessario uno strumento?

+1

Nonostante il (presunto?) Fastidio, grazie per le informazioni. Sono principalmente uno sviluppatore front-end con un livello di abilità moderato nell'amministrazione di sistema, quindi devo mettere insieme molte cose insieme molto rapidamente. – Geuis

+2

Scusate, nessuna intenzione intesa; Non stavo davvero prestando attenzione al mio fraseggio a notte fonda. :) – Amber

+0

In che modo questa soluzione gestisce i file cancellati dal tuo codice? O file che si muovono? –

Problemi correlati