10

Stiamo usando Jenkins di costruire (Maven) & distribuire gli artefatti (JAR & * GUERRA * s) a un server Artifactory in-house (sia istantanee e stampa).Jenkins: distribuzione di file di guerra da Artifactory

Per la distribuzione, attualmente, abbiamo i lavori Jenkins che contengono il file war (da un tag scm di rilascio) e vengono distribuiti in ambienti/server diversi. Vogliamo saltare la fase del pacchetto in quanto sembra inutile impacchettarlo di nuovo & per una versione rilasciata perché non è possibile ottenere una copia diversa del file di guerra anche dopo aver provato 1000 volte.

Stiamo cercando un modo in Jenkins per ottenere l'artefatto (guerra) da Artifactory e distribuirlo in un contenitore. Sono sicuro che anche altre persone avrebbero affrontato questa situazione, ma non sono in grado di trovare alcun materiale online in merito.

C'è qualche plugin Jenkins che prende un file di guerra da Artifactory (basato su una versione) e lo distribuisce in un contenitore remoto?

Se questo non è il modo giusto di farlo, quali sono le raccomandazioni per qualsiasi altro approccio?

Grazie

+0

trovato qualcosa di utile: http://stackoverflow.com/a/7785290/1844874, darà un tentativo – Ranko

risposta

1

Ogni artefatto memorizzato in Artifactory avranno un URL univoco che include il numero di versione. Avrà il formato

http://artifactory-server/repository-name/path-to-artifact/version/filename 

ad es.

http://artifactory/apps-releases-local/com/yourorg/yourapp/1.5.67/webapp.war 

(a seconda di come si esegue la confezione, il nome del file WAR può includere anche il numero di versione).

Così il lavoro di implementazione può costruire l'URL Artifactory e scaricare il file. A seconda di come è stata impostata la sicurezza in Artifactory, potrebbe essere necessario autenticare la richiesta.

+0

Sì, ho capito. La mia domanda qui è come faccio a fare un lavoro di distribuzione in jenkins che scarica il file di guerra da un URL? – Ranko

+0

Non si dice quale contenitore Web si sta utilizzando; Maven ha una distribuzione Tomcat integrata, vedi http://www.mkyong.com/maven/how-to-deploy-maven-based-war-file-to-tomcat/ Altrimenti puoi semplicemente scrivere una fase di costruzione della shell in Jenkins fare i passi di implementazione. –

+0

Sto utilizzando Tomcat. Il plug-in maven-tomcat consente di implementare una guerra archiviata in artefatto? Scrivere uno script di shell per scaricare la guerra e la distribuzione ha senso, ma mi stavo chiedendo se questo è già stato fatto in alcuni jenkins o plugin di Maven di cui non sono a conoscenza. – Ranko

2

Non conosco un plug-in che accetta una versione # e la distribuisce, ma è possibile creare un lavoro Jenkins per distribuire l'ultima versione riuscita in un ambiente precedente (ad esempio, copia da DEV -> QA.)

Per fare ciò, è necessario utilizzare il plugin copy-artefatto.

Ecco un facile da seguire run-through di questo tipo di impostazione:

http://www.lordofthejars.com/2012/09/deploying-jee-artifacts-with-jenkins.html