2013-02-21 18 views
8

Ho uno script di bash che eseguo da un lavoro di Jenkins, usando "execute shell". Lo script avvia un'istanza EC2 e imposta una variabile host contenente il nome host della nuova istanza.Jenkins: impostazione della variabile env dallo script di shell

Vorrei impostare il nome host della nuova istanza (variabile di script: host) in una variabile di ambiente Jenkins in modo che possa passarlo a un processo downstream (possibilmente utilizzando il plug-in Build Flow).

Qualche idea su come farlo?

Grazie

risposta

8

Ho finito per utilizzare un file per propagare i dati tra le build. La prima build crea un file contenente le informazioni che ho bisogno di propagare (nome host dell'istanza EC2 appena creata). Il file si presenta come:

host.name=ec2.123.3345.amazon.com 

Io uso il plugin EnvInject di leggere il file e "iniettare" le proprietà che sono poi disponibili nella prossima build (sto usando la configurazione di flusso Plugin per orchestrare COSTRUISCE).

+2

Ho avuto lo stesso problema, è male che non ci sia altra soluzione, ancora. – CSchulz

+0

Se si utilizza NANT, è possibile iniettare la variabile di ambiente utilizzando il plug-in EnvInject e impostarlo su un valore predefinito. Quindi nello script NANT utilizzare l'attività setenv per impostarlo sul valore corretto. – NotAgain

2

V'è un plugin che è possibile installare per iniettare la variabile: EnvInject Plugin

Se ho capito il problema, credo che questo semplice plugin è quello che ti serve.

+0

Sto già guardando questo plug-in, ma non riesco a trovare un esempio adatto alle mie esigenze. –

+0

È molto semplice: devi aggiungere come prima fase di costruzione una nuova "variabile di ambiente iniettata" e specificare il tuo percorso, oppure se preferisci direttamente la variabile: https://wiki.jenkins-ci.org/display/JENKINS/ EnvInject + Plugin – Vargan

+0

Sfortunatamente è un po 'più complesso di quello. Se leggi attentamente il mio post originale, il requisito è che io debba eseguire uno script di shell che imposta internamente una variabile "host". Questa variabile dovrebbe essere in qualche modo impostata come variabile di ambiente in Jenkins –

Problemi correlati