informazioni sui rami di sviluppo nello strumento di gestione dei rilasci

-1

Sto progettando uno strumento nella mia organizzazione per aiutarmi nella gestione dei rilasci. L'organizzazione è composta da diversi piccoli team che gestiscono i propri repository in git. Il gestore dei rilasci è responsabile del taglio dei rami su tutte le linee di sviluppo in ciascuno dei repository e poi lo consegna ai processi di controllo qualità.

Lo strumento chiede a ciascun team di definire una semplice specifica YAML che descriva dettagliatamente i passaggi utilizzati per compilare e impacchettare il sorgente del team in artefatti binari. Queste potrebbero essere un'istruzione di tipo Maven o una configurazione di Python. Diversi linguaggi (e strumenti di costruzione) sono utilizzati per ciascuno di questi progetti. Le specifiche YAML e le istruzioni per creare / pacchetto sono memorizzate all'interno dei singoli repository del team.

Durante un rilascio, il mio strumento di rilascio dovrà tagliare i rami da tutti i rami di sviluppo di questi repository. Quello con cui sto combattendo è - dove conservare questo elenco di rami di sviluppo per repository?

Non appartiene al mio strumento perché non voglio che i team definiscano quell'elenco nel codice sorgente del mio strumento.

Non può essere archiviato nei repository dei team perché il mio strumento non saprebbe quale ramo del repository del team deve esaminare le informazioni sul ramo di sviluppo. È uno strano riferimento personale.

    
posta tsps 21.01.2017 - 06:40
fonte

1 risposta

0

Vedo 2 diversi modi per risolvere questo problema.

  • puoi definire un ramo standard il cui scopo è ospitare il codice che desideri costruire. Chiamiamo questo ramo "consegna". Ogni volta che uno sviluppo è pronto per essere costruito, chiunque può unire il ramo dev al ramo di consegna. Quando ogni repository lo ha fatto, puoi utilizzare il tuo strumento e configurarlo per utilizzare il ramo di consegna su ciascun repository.
  • se la soluzione di cui sopra non può essere utilizzata, è comunque possibile creare un repository "progetto" che include ogni altro repository come sottomodulo. Pertanto, è possibile configurare il progetto principale e definire quale ramo deve essere utilizzato per ogni sottomodulo. Infine, lo strumento di rilascio dovrà solo essere configurato per utilizzare il repository del progetto
risposta data 21.01.2017 - 15:35
fonte