2015-09-30 16 views

risposta

6

Tecnicamente, non è possibile passare le variabili di env da un lavoro a quello successivo e non sono a conoscenza di un plug-in per farlo subito.

Esiste comunque una tecnica. L'idea è di creare un file delle proprietà nel primo lavoro (ad esempio exported.properties), aggiungere quel file alle risorse del lavoro e quindi importare questo file tramite lo EnvInject plugin nel secondo lavoro.

Questo presuppone che si abbia un collegamento tra il primo e il secondo lavoro, che viene in genere ottenuto con il plug-in Copy Artifact, ma un certo numero di plug-in come il flusso di lavoro può essere d'aiuto.

Ad esempio, per creare il file delle proprietà, aggiungere un passaggio "Esegui shell", ad es.

echo "# Saving some version properties 
BUILD_VERSION=${BuildVersion} 
BUILD_NODE_NAME=${NODE_NAME} 
SOURCE_JOB=${JOB_NAME} 
" > ${WORKSPACE}/BuildVersion.properties 

Naturalmente, è possibile utilizzare altri passi di costruzione, ad es. Shell di Windows, script groovy, ecc ... ognuno con la loro sintassi specifica, ovviamente.

+0

Come posso creare un file di proprietà nel primo lavoro? Esiste un plug-in? Puoi aiutarmi con un esempio? –

+0

Aumentata la risposta con un esempio con uno scriptlet della shell (* nix) –

0

Ci sono due modi per farlo a seconda del caso d'uso: -

1) EnvfilePlugin -

installare questo plug-in, se le variabili d'ambiente sono costanti e non cambiare al volo/dinamico allora è possibile salvarli in un file di testo e dare il giuramento del file nella pagina di configurazione del lavoro di Jenkins. Sotto Controllo ambiente di compilazione Impostare le variabili di ambiente attraverso un file. indica qui il percorso di quel file.

Se la variabile di ambiente viene creata nel primo lavoro, è possibile salvare nuovamente tutte le variabili di ambiente in un file e sfogliarlo utilizzando il metodo precedente.

2) EnvInject plugin -

installare questo plug-in e andare a paeg configurazione del processo. Selezionare "Prepara un ambiente per l'esecuzione" e salvare le proprietà come menzionato da Patrice nella risposta sopra, specificare anche il percorso dello script e altri dettagli.

0

È possibile effettuare i lavori a valle parametrizzati (aggiungere parametri nella pagina di configurazione del processo), quindi attivare questo lavoro da un monte Workflow lavoro, lo script del flusso di lavoro sarebbe qualcosa di simile a questo:

build job: 'my-downstream-job', parameters: 
    [[$class: 'StringParameterValue', name: 'MY_VAR', value: 'Hello world!']] 

Poi si può utilizzare MY_VAR come desiderato nel proprio my-downstream-job.

Problemi correlati