In che modo un team di una persona trarrebbe vantaggio da una configurazione di integrazione continua? [duplicare]

1

Sono una squadra di un solo uomo. Sviluppo un database interno e l'interfaccia web.

Il mio flusso di lavoro corrente è codice sulla mia macchina di sviluppo. Test.
Invia a un server git centrale.
Accedere al server di produzione trascinare le modifiche. Riavvia il server di produzione.

È basato su Python. Ho provato a configurare Fabric una volta, ma ho ritenuto che fosse un bel po 'di setup, e non ho guadagnato nulla, in quanto tale non ho finito per usarlo.

Qualcuno potrebbe convincermi del contrario? (O d'accordo).

Da un lato, Hudson / Jenkins fanno lo stesso lavoro di Fabric? O sono questi per scopi diversi. Sto fraintendendo i concetti?

    
posta wobbily_col 25.03.2015 - 09:40
fonte

1 risposta

4

Fabric è uno strumento di distribuzione, non un server CI. Jenkins è ed è fantastico. È fondamentalmente uno script-runner glorificato che è integrato nel tuo SCM (con molti extra), quindi guarda il tuo SCM ed esegue gli script quando vengono fatti i commit. Uno di questi script sarà distribuito automaticamente.

Un server CI è fondamentalmente un modo automatico per eseguire metà delle attività che hai fatto manualmente. Invece di collegarsi al server di produzione, tirando le modifiche e riavviandolo, Jenkins può farlo. (Tuttavia, la produzione suona per me dei campanelli di avvertimento, vuoi davvero farlo su un server QA per testare di nuovo e assicurarti che sia giusto prima di copiare in produzione come un processo controllato invocato manualmente).

Tuttavia, se un server CI è configurato per l'implementazione da una posizione di conoscenza sul tuo SCM (ad esempio, l'ultimo dal trunk), devi solo eseguire il commit delle modifiche e dopo un po 'di tempo sul server QA. Se disponevi di un team di test, potresti impostarlo per l'implementazione durante la notte in modo che potessero entrare e iniziare a testare contro l'ultimo codice senza doversi preoccupare di ottenere l'ultimo distribuito.

I server CI vengono anche utilizzati per creare (potrebbero non essere applicabili), eseguire strumenti di analisi statica (sempre una buona idea) ed eseguire script di test.

Una cosa che potrebbe essere preoccupante se la natura push-pull del tuo lavoro. Dovresti lavorare su un ramo, quindi unirlo a master quando è pronto. Il tuo server CI dovrebbe guardare il master in modo da poter lavorare quanto vuoi sul tuo ramo prima di premere il pulsante "Unisci che attiva tutte le distribuzioni".

    
risposta data 25.03.2015 - 09:51
fonte

Leggi altre domande sui tag