Sto cercando di sposare l'approccio git flow (w / dev, test, uat, staging, prod env) & build e rilasci automatici in Visual Studio Team System (VSTS). Leggermente faticoso a causa del VSTS che ha bisogno di un ramo persistente su "anchor" - Sono curioso di sapere cosa fanno gli altri.
Il nostro approccio
- branch
newFeature
dadevelop
branch. - funziona, e amp; aumentare PR per
newFeature
. Una volta approvato e amp; Esecuzioni di build automatiche,newFeature
è unito adevelop
ed eliminato. - Questa build viene quindi distribuita nell'ambiente di sviluppo e viene verificata la verifica.
- La stessa build [invariata] può quindi essere distribuita nell'ambiente di test e QA'ed.
- Quando i tester sono felici, il rilascio è pronto per UAT. Creiamo un nuovo ramo
release-x
dadevelop
, forse anche cherry picking .. -
release-x
viene quindi creato quindi distribuito in UAT. - i problemi / i difetti sono prioritari e risolti .. alcuni vanno nel backlog, alcuni sono fatti direttamente in
release-x
è fondamentale. - una volta che tutto pronto
release-x
è unito amaster
branch, che attiva un nuovo, terzo build .. - quella build viene distribuita nell'env di gestione temporanea per i controlli finali dei clienti
- quando tutto va bene, la stessa build viene anche distribuita alla produzione
Quindi, per raggiungere questo obiettivo, abbiamo un paio di pipeline di build / release:
- dev / test - questo prende la build prodotta al completamento della funzione e fa lo stesso build build per test
- staging / prod - questo prende la build prodotta una volta che una release si è fusa in master, e può anche spingerla in prod
- non hanno nulla di automatizzato per UAT a causa del fatto che
release-x
non è permanente
La domanda generale che ho qui è davvero duplice:
-
Dove / quando dovrebbe prendere un ramo di rilascio?
- quando viene eseguita una build di sviluppo?
- dopo una build di test ok?
- qualcos'altro?
-
Quanto è meglio evitare le 3 build che attualmente abbiamo? : |
Penso che mi piacerebbe fare il primo ... ma non sono sicuro di come possa essere sistemato VSTS CICD?