2013-06-05 6 views
13

Sto cercando di ottenere l'hash short git in una variabile. Ho provato a impostare la variabile GIT_COMMIT_SHORT per eseguire 'git rev-parse --short HEAD' ma non ha funzionato. Ho bisogno che questa variabile passi allo script ant form, quindi il nome del pacchetto include questo breve hash.come ottenere git short hash in una variabile in Jenkins su Windows 2008

Sto eseguendo Jenkins sul server Windows 2008.

Grazie

+0

Ho impostato la variabile di ambiente nella configurazione principale di jenkins. – user2367078

risposta

1

vi consiglio di utilizzare il plugin EnvInject per caricare il parametro da un file di proprietà si crea che contiene l'hash.

Echo il risultato del comando git in un file formato key=value nell'area di lavoro del lavoro e caricarlo con il plug-in che ho menzionato.

L'ho usato per tali esigenze ed è molto semplice.

Spero che questo aiuti.

EDIT: come scrivere un file di proprietà in Windows:

@for /f "delims=" %l in ('git command') do @echo hash=%l >> hash.properties

Quindi, è possibile caricare hash.properties con il plugin.

+1

Grazie a Eldad per una rapida risposta. quello che capisco tu stia suggerendo di creare un file di proprietà che ha un breve hash e caricarlo attraverso il plugin EnvInject in modo che possa ottenere l'installazione in ambiente durante il tempo di costruzione, se questo è il caso di come creare questo file su fly su Windows? – user2367078

+0

Vedi la mia modifica. Ho aggiunto un esempio ... –

+0

Posso eseguire questo comando in Contenuto script? – user2367078

23

Probabilmente il modo più semplice per ottenere il risultato che si desidera sarebbe quella di utilizzare la macro di token GIT_REVISION, in questo modo:

${GIT_REVISION,length=6} 

Dai un'occhiata alla https://wiki.jenkins-ci.org/display/JENKINS/Token+Macro+Plugin per maggiori dettagli.

Spero che questo aiuti,
Jan

+2

Funzionerà solo per i campi che consumano un TokenMacro, che esclude i passi di costruzione AFAIK. –

+1

@MattiasBengtsson hai ragione, ma dipende dalla fase di costruzione. Non funzionerà per la fase di script della shell, ma dovrebbe funzionare per quella di Maven, se non ricordo male –

0

Senza alcun plugin aggiuntivi che si possono ottenere impegnarsi utilizzando il seguente comando nello script Jenkins (costruire passo 'comando batch di Windows Esegui'):

for /f %%i in ('git rev-parse HEAD') do set GITHASH=%%i 

Al comando linea che si dovrebbe usare solo % invece di %%:

for /f %%i in ('git rev-parse HEAD') do set GITHASH=%%i 
0

On jen kins 2.73 con git plugin Questo modello funziona segnaposto

${GIT_REVISION:0:7} 

ho usato con il plugin tubazione di mandata per impostare il nome dell'attività.

E.g Edificio GIT rev. ${GIT_REVISION:0:7}

Problemi correlati