Ho un progetto che ha:Come organizzare la pipeline completa di build con Gulp, Maven e Jenkins, fino ai test di integrazione?
- client JS con processo di generazione un po 'interessante. Ciò include la compilazione di CSS, la catenazione e la minimizzazione di JS e CSS, la generazione e l'elaborazione di HTML e altri passaggi. Gli strumenti Node come Grunt o Gulp sono fantastici in questo.
- Server Java che è un WAR distribuito su Tomcat. Include queste risorse e tutto il codice Java. Ha tutti i tipi di test: test unitari, test di integrazione che possono istanziare un DAO e parlare con DB e test API end-to-end che parlano effettivamente con l'app in esecuzione su Tomcat.
- Test end-to-end con goniometro. Se non ti è familiare, è un altro strumento di nodo che avvolge il selenio.
Come posso organizzare l'intero processo in modo sano, solido e automatizzato?
Quello che ho al momento è Gulp e Maven, con Maven che possiede praticamente l'intero processo.
- Si chiama Gulp asset generation in generate-sources utilizzando antrun (doh, terzo strumento di compilazione!).
- Esegue la normale versione di Java.
- Avvia Tomcat con il mio WAR nel test di pre-integrazione.
- Esegue test E2E Java che parlano con quel tomcat con plug-in failsafe.
- Chiama nuovamente Gulp con antrun, questa volta per eseguire i test del goniometro.
- Arresta Tomcat nel test di post-integrazione.
- Si suppone che verifichi i risultati del test in fase di verifica.
Questo tipo di opere, tranne che per Maven è generalmente molto rigido e sento che sto prendendo troppo lontano. Usare antrun per chiamare Gulp è un brutto trucco. È molto difficile controllare le dipendenze tra questi passaggi e monitorare i loro risultati. È difficile controllare l'ordine delle cose nella stessa fase. La verifica di sicurezza non sembra elaborare i file di report JUnit esterni generati da Gulp. Potrei andare avanti
Mi chiedo se dovrei fare di più nel mio server di build (Jenkins), magari usando una pipeline di build o trigger parametrizzati - ma non l'ho mai fatto e non sono sicuro che sia davvero meglio.
Quindi, come lo implementeresti?
ho avuto una query simile a Programmers.SE: http://programmers.stackexchange.com/questions/222660 – yochannah
Quale soluzione sei andato per? Sto per iniziare la stessa cosa. Maven e Jenkins fanno già parte del processo ma voglio portarvi del gulp per CSS e compressione js, minification ecc. – br3w5