All'interno dell'area di sviluppo, spesso per un determinato progetto, più di uno sviluppatore sta lavorando nella "sua" nuova funzione su un ramo separato (Utilizziamo GIT per il controllo della versione). Oltre a questi rami di funzionalità, c'è solo il ramo master .
Abbiamo separato Testing e Production ambienti.
Nel nostro flusso di lavoro, la policy definita è che il file compilato (per lo più .war's) che andrà in Testing e successivamente in Production (se approvato), è quello generato da Jenkins dal master ramo.
L'argomento per questo è che ciò che alla fine verrà rilasciato a Production è esattamente lo stesso file testato in Test.
Il problema è che mentre la prima nuova funzione da spingere non è approvata e distribuita in produzione, tutte le altre funzionalità devono aspettare anche per essere testate.
Inoltre, poiché non è garantito che il master sia sempre pronto per la produzione (poiché le modifiche possono essere rifiutate dal tester), può accadere che una nuova funzione venga derivata da uno stato non "pulito".
Quanto è valida e diversa la politica di cui sopra (Test e produzione dal ramo principale) da:
fondere il master in feature branch, pubblicare war test compilato localmente e poi, se approvato, fondersi in master , da dove la guerra finale verrà generata da jenkins? Sono in pratica entrambe le guerre in realtà diverse?
Dovremmo implementare un altro flusso di lavoro dato il nostro scenario (molte funzionalità sviluppate in parallelo)?