2011-07-01 16 views
7

Ho bisogno di costruire e testare su più configurazioni: linux, osx e solaris. Ho nodi slave etichettati "linux", "osx" e "solaris". Su ogni configurazione, voglio (a) compilare (b) eseguire test fumo (c) se i test fumo passano, quindi eseguire test completi, e forse di più.Come configurare la configurazione multi-configurazione di jenkins e test

Ho pensato che i lavori di configurazione multipla potessero essere la risposta, quindi ho impostato un lavoro di configurazione multi-configurazione e ha avviato build simultanei su ciascun sistema operativo . Il lavoro di compilazione innescherà un build di test del fumo a valle, che, nel turno , attiva il processo di test completo.

ho incontrato i seguenti problemi

  1. Se una delle configurazioni fallisce, il lavoro nel suo complesso non riesce e Jenkins non viene attivato alcun processo a valle (ad esempio, se i solaris costruire fallisce, Jenkins non eseguirà test fumo o test completi per osx e linux).

  2. L'accumulo di Solaris richiede circa il doppio del tempo come gli altri (in ordine d'ora), e preferirei i test linux osx e fumo non attesa per Solaris costruire alla fine.

Vuol dire che mi rimane a mano lavorazione tre condotte di posti di lavoro, e mettendoli dietro un lavoro di "start-all" (vale a dire, la creazione e la mano-chaining i seguenti posti di lavoro)?

build-linux smoke-test-linux full-test-linux 
build-osx  smoke-test-osx  full-test-osx 
build-solaris smoke-test-solaris full-test-solaris 

Mi sono perso qualcosa di ovvio?

risposta

4

Per quanto ne so, la risposta è creare 3 lavori matrice, uno per ogni sistema. Avrebbero quindi 3 subjobs (build, smoke-test, fulltest) con il build-job come pietra di paragone.

+0

Sono un po 'confuso da questa risposta. Se ci sono 3 lavori matrice, quali sono gli assi per ognuno? 'Matrix Job' == 'multijob' qui? – Dormidont

3

Avete mai pensato di combinare la compilazione, il test del fumo e i test completi in un unico lavoro di configurazione multipla? Oltre ad essere un po 'disordinato, questo dovrebbe funzionare per te.

Per rispondere alla tua prima edizione: per attivare un lavoro a valle indipendentemente dal risultato, l'uso di trigger costruire parametrizzato da eseguire quando completo (sempre trigger) e quindi controllare "costruire w/o parametri"

Per rispondere alla tua seconda emissione : utilizzare un lavoro multicomponente (matrice) completo o utilizzare tre flussi di lavoro separati come indicato. AGGIORNAMENTO: è possibile eseguire 3 lavori matrice sequenziali per ogni passo (build, smoke-test, test completi) ma significherebbe che se uno qualsiasi dei passi di costruzione fallisse, nessuno dei fumi verrebbe eseguito.

Problemi correlati