Domanda

Sto cercando di configurare Hudson in modo da poter distribuire automaticamente una build (un file .war) su Tomcat.La build appena distribuita verrà quindi utilizzata da qualcuno per testare l'applicazione.

Ho provato a utilizzare il plugin Deploy per distribuire automaticamente il file .war e funziona.Tuttavia, il lavoro che crea il file .war verrà eseguito dopo ogni modifica di scm (ogni volta che viene eseguito il commit del codice).Con il plugin Deploy, il file .war verrebbe distribuito su Tomcat ogni volta che viene creata una build.Poiché il commit del codice viene eseguito frequentemente, ciò significherà che anche l'applicazione Web verrà riavviata frequentemente e ciò interromperà il processo di test.

Apprezzo il fatto che Hudson esegua i miei test unitari e realizzi regolarmente una build, quindi non voglio modificare i trigger per questo lavoro.

Sto cercando un modo per decidere manualmente di eseguire la distribuzione dall'interno di Hudson.Ho provato a creare un lavoro separato che distribuirà il file .war dal primo lavoro, ma non ha funzionato.Qualcuno ha esperienza nell'impostare qualcosa del genere?

È stato utile?

Soluzione

Come ottenere gli artefatti

Guarda la sezione "Come ripristinare o ridistribuire una build precedente" sul Pagina Distribuisci plugin.Descrive l'idea di base.Utilizza il Copia plugin Artifact per copiare gli artefatti dal lavoro di compilazione al lavoro corrente (il lavoro di distribuzione).Da lì fai lo stesso che hai fatto nella fase di creazione.

Come attivare la distribuzione

Il lavoro di compilazione non può essere attivato dopo l'avvio della distribuzione in modo che venga eseguita prima una compilazione e poi il lavoro di distribuzione.Quindi ci sono alcune opzioni:

  • attivare manualmente la costruzione.L'utente che avvia la distribuzione deve selezionare un'esecuzione specifica del lavoro di compilazione.
  • distribuzione programmata Questo potrebbe far parte dei compiti notturni.Il lavoro viene attivato a un certo intervallo (ad esempio ogni notte o ogni fine settimana).Poiché è automatizzato, il processo di distribuzione dovrebbe riprendere l'ultima build riuscita (non è quindi necessario un processo parametrizzato).Non hai la possibilità di passare un numero di corsa.
  • il lavoro di distribuzione ottiene attivato ogni volta che una build termina con successo (non soddisfa le tue esigenze, ma elencato per completare l'elenco)
  • Alcuni altro trigger (esoterico)..Questo può essere molto diverso, ad es.attivato in remoto chiamando l'URL di build.La chiamata può provenire da uno dei tuoi sistemi di biglietteria, dal sistema di gestione del laboratorio di test o da qualsiasi altro sistema di tua scelta.Puoi anche attivare la distribuzione mediante modifiche specifiche nel sistema di controllo del codice sorgente, come la modifica del numero di versione (ad es.contrassegnato da una parola chiave nel messaggio di commit).Questo trigger può essere implementato all'interno o all'esterno di Hudson.Sono disponibili anche altri trigger.Ciò include, a titolo esemplificativo, la modifica della pagina html, la modifica di una parte monitorata del file system, i messaggi IM, le e-mail.I primi tre sono implementati da un plugin Hudson.Dai un'occhiata all'elenco dei plug -in, per sapere cosa è tutto evalibile o in entrambi i casi è necessario assicurarsi che il lavoro di costruzione archivi tutti i manufatti necessari per la distribuzione.

Altri suggerimenti

Ho diversi posti di lavoro Hudson per progetti:

  1. Un lavoro principale che si basa solo il progetto e esegue i test. In caso di successo, si lancia i seguenti lavori:
  2. Un lavoro metrica del codice (PMD, FindBugs, Cobertura, CheckStyle, anche la generazione JavaDoc) e
  3. Un lavoro Deploy che costruisce il progetto con mvn package -DskipTests e distribuisce la guerra su Tomcat

trovo che separano queste cose fatte più facili, solo i primi ascolti di lavoro per SCM cambiamenti.

Tuttavia, un altro modo sarebbe quello di lasciare che il terzo lavoro ascoltare anche alla SCM (ma con un intervallo più lungo, forse un'ora).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top