2012-02-16 11 views
12

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.

risposta

2

Penso che sarà necessario personalizzare: il lavoro di polling di primo livello (ottimizzato per suggerimento) esegue uno script personalizzato che determina i rami modificati o aggiunti. Quindi utilizzerà Jenkins API per avviare un lavoro parametrizzato dal nome del ramo. Questo parametro può essere utilizzato nel tuo lavoro per personalizzare tutto ciò che ti serve dal nome del ramo (compresi gli artefatti).

Problemi correlati