Da un po 'di tempo eseguiamo l'integrazione continua e la consegna continua con Subversion che si attiva quando le condotte si innescano. Recentemente, abbiamo iniziato a utilizzare git in alcuni progetti con git-flow e stiamo cercando di decidere quali rami di git-flow dovremmo utilizzare per attivare l'integrazione continua e le pipeline di consegna continue.Integrazione continua e consegna continua con git-flow
Qui ci sono due approcci:
1. Utilizzare sviluppano ramo
Problema: Con git-flow che siamo tenuti a distribuire il rilascio (o master) filiale di produzione, in modo avremmo dovuto costruire due diversi gasdotti, uno per l'integrazione continua (sviluppo delle diramazioni) e uno per la distribuzione continua (master delle filiali). Questo potrebbe introdurre bug in produzione perché la versione in produzione non sarà la stessa di quella in altri ambienti (integrazione, test, staging).
2. Usare branch master:
Problema: In questo modo, non avremmo un'integrazione veramente continuo, dal momento che le modifiche a questi rami sono spinti non molto frequente.
Qual è il ramo di rigth da utilizzare nelle condotte?
Nella mia esperienza git-flow è più adatto per _packaged software_ (qualcosa che pubblichi occasionalmente, con numeri di versione discreti, possibilmente con diverse versioni precedenti in natura). E 'questo il tuo caso? Per un approccio basato su _web (rilasciato costantemente, l'unica versione che conta è quella live) ho trovato il più semplice flusso di lavoro [feature branch] (https://www.atlassian.com/git/tutorials/comparing-workflows/ feature-branch-workflow) o [flusso github] (https://guides.github.com/introduction/flow/) si avvicina molto più adatto. –
È possibile eseguire l'integrazione, il test e la gestione temporanea in altri rami, quindi eseguire il master? –