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