Ho un lavoro di build Jenkins con un trigger Mercurial sul ramo predefinito, che funziona bene per la costruzione di "release candidate". Questo lavoro inizia quindi un lavoro di prova del fumo.Come configurare Jenkins per costruire il progetto da diversi rami in Mercurial
Utilizziamo uno schema di diramazione branch-per-feature, in modo che in qualsiasi momento ci possano essere fino a una dozzina di diversi rami attivi in Mercurial (ma i rami attivi cambiano regolarmente).
Vorrei un lavoro Jenkins attivato dalle modifiche a qualsiasi ramo, che quindi costruirà ed eseguirà i test fumo per tutti i rami che necessitano di aggiornamento. Ogni volta che eseguiamo una build, dovremmo creare degli artefatti chiamati per abbinare il ramo.
Ho visto un suggerimento in un'altra risposta di usare "tip" al posto del nome del ramo nel trigger Mercurial - questa è una possibilità, ma penso che rientrerebbe nella categoria "per lo più funziona". Il trigger sta eseguendo il polling, quindi se si verificano modifiche a più di un ramo nell'intervallo di polling, è possibile che un aggiornamento di ramo non venga rilevato.
Potrei creare un nuovo lavoro ogni volta che viene creato un ramo, ma a causa della natura dinamica delle nostre filiali, sarebbe molto lavoro continuo.