Ho alcune domande concrete sul controllo delle versioni in Consegna continua. Penso di capire il flusso di lavoro globale che più o meno è questo:Creazione di versioni in consegna continua
1) Code
2) Push to version Control
3) Continuous Integration (unit, integration and end-to-end auto testing)
4) Artifacts deployment
E il controllo delle versioni? Come gestisci le versioni di build?
Diciamo che stiamo lavorando a un progetto basato su Maven con versioning semantico: major.minor.build
.
Quando lo sviluppatore esegue il commit delle modifiche a VCS e il server CI esegue una compilazione, il server CI deve incrementare la versione di build e creare un tag in VCS?
Questa versione di build è presente nel codice sorgente? In tal caso, dopo ogni push su VCS, lo sviluppatore dovrebbe aggiornare il progetto, poiché il server CI ha eseguito il commit delle modifiche (incremento della versione) sul progetto.
Sono un po 'confuso e mi piacerebbe capire il flusso di lavoro del CD in modo pratico.
Ci sono molti modi per avvicinarsi a questo, a seconda delle circostanze e degli obiettivi uno potrebbe essere migliore di un altro. Esistono numerosi libri "standard" che trattano questi approcci ("Rilasciarlo" è uno di questi). Inizia rispondendo alla domanda: vuoi che ogni build produca un artefatto in versione univoca. Perché? Perchè no? Oppure "manualmente" (ad esempio dopo uno sprint) decidi che è il momento di una nuova versione? – reto
La domanda è probabilmente più adatta per http://programmers.stackexchange.com/ – reto