2011-09-02 8 views
10

Spero che tu possa aiutarmi su questo. Ho un lavoro chiamato "Template" che genera un file template.xml. Ho diversi altri lavori che usano questo file template.xml. Tuttavia, prima che costruissero, volevo che potessero estrarre l'ultimo template.xml dallo spazio di lavoro del lavoro "Modello".Estrarre un file da un altro lavoro prima di costruire in Jenkins?

risposta

4

Nel vostro Template lavoro, è possibile archiviare il file template.xml come un artefatto, quindi sarà disponibile per gli altri posti di lavoro presso un URL simile al seguente:

http://myserver/jenkins/job/myjob/lastSuccessfulBuild/artifact/template.xml 
+0

Ho finito per usare wget per ottenere il file dallo spazio di lavoro ... è una cattiva pratica? – Marx

+4

Due rischi nel tirarlo dallo spazio di lavoro: 1) una persona con le autorizzazioni appropriate può fare clic sul collegamento "Elimina spazio di lavoro" e rimuovere il file; 2) una build potrebbe fallire senza lasciare alcun file o un file inutilizzabile. Tirando il file dagli artefatti archiviati otterrai sempre il file dall'ultima build di successo. – highlycaffeinated

22

Nel "modello" lavoro, sotto Azioni post-creazione, scegliere di elaborare il file xml utilizzando l'opzione di archiviazione.

È quindi possibile utilizzare "Copy Artifact Plugin" per copiarlo su tutti gli altri lavori.

Jenkins Job Setup for Artifact Generator Project: enter image description here

Jenkins Job Setup for Artifact User Project: enter image description here

+0

Ho finito per usare wget per ottenere il file dallo spazio di lavoro ... è una cattiva pratica? – Marx

+0

Vedi i commenti di verycaffeinated qui sotto. Per aggiungere questo, ti stai limitando a usare gli schiavi di Linux (potrebbe non essere un problema, qualcosa da pensare comunque). Inoltre, l'archiviazione consente di mettere in relazione file di modelli diversi con build diversi degli altri lavori (utilizzando il fingerprinting). – Sagar

+0

esattamente quello che stavo cercando. Grazie. – pess0a

0

Nella mia fine io uso un approccio abbastanza strainghforward. Corro Jenkins in un layout di solito (ubuntu 16.04 server) e ho bisogno di chiamare l'esperto checkstyle plug utilizzando lo stesso file di configurazione checkstyle.xml che risiede all'interno di un lavoro dev-risorse:

enter image description here

quanto mi chiamano checkstyle mvn :

enter image description here

spero che possa essere utile per qualcun altro.