Esperienza con Hudson - Progetto di costruzione di matrici
-
05-07-2019 - |
Domanda
Qualcuno ha provato quella funzione e ha ricevuto un feedback? Oppure qualcuno conosce alcuni esempi utili da cercare?
Soluzione
Ho provato questa funzione alcuni mesi fa, ma non la uso più (solo perché non ne ho bisogno, non perché non è una buona funzionalità).
Fondamentalmente, si definisce n Asse, ogni asse è una proprietà con diversi valori.
Facciamo un esempio: definisci l'Asse "JDK", con valore possibile "1.4", "1.5", "1.6" e definisci un'altra proprietà "database", dove i valori possibili sono "oracle", "mysql".
Quindi, Hudson lancerà la tua build 6 volte:
- con JDK 1.4, con il database delle proprietà = oracle (ovvero la JVM viene avviata con -Ddatabase = oracle)
- con JDK 1.5, con il database delle proprietà = oracle
- con JDK 1.6, con il database delle proprietà = oracle
- con JDK 1.4, con il database delle proprietà = mysql
- con JDK 1.5, con il database delle proprietà = mysql
- con JDK 1.6, con il database delle proprietà = mysql
Quindi, una volta terminato tutto, sarai in grado di vedere i risultati per ogni iterazione.
Questa funzione può essere davvero utile quando devi testare la tua applicazione in diversi ambienti (nel mio esempio, con diverse versioni di JDK o database).
Si noti che, tranne per l'asse JDK, è necessario gestire da soli la proprietà fornita come voce da Hudson. Nel mio esempio, l'applicazione deve tenere conto del "database" proprietà stessa. Alla fine, una buona idea è quella di utilizzare questa proprietà per abilitare un particolare profilo nella configurazione di Maven2, se il progetto è stato modificato (vedere qui per maggiori dettagli a riguardo).
Spero che le mie spiegazioni siano abbastanza chiare :)
Altri suggerimenti
Le build di Matrix hanno una serie di problemi:
- In linea di massima incompatibili con i plug-in: stanno migliorando, ma è necessario tenersi aggiornati.
- Manufatti - molto più difficile da sottrarre - Gli URl sono un po 'più imbarazzanti, trovarli sul FS (che dovresti evitare comunque) ora è un incubo.
È un peccato, perché il concetto è molto buono e molto utile dove funziona.
Modifica
- Impossibilità di iniziare singoli punti.
Il nostro solito modo per aggirare questo è di avere build parametrizzate impostate per l'esecuzione simultanea - il che comporta problemi propri, ma ci salva avendo molti lavori con lo stesso codice e costanti diverse.