2012-03-21 17 views
5

Ho uno script bash che assomiglia a questo:Jenkins - eseguire uno script prima di costruire, quindi avere la conferma dell'utente per costruire

#!/bin/sh 
previousRelease=`git describe --tags --match "release*" origin/release` 
git diff --name-status $previousRelease..origin/release 

Esiste un modo di avere Jenkins eseguirlo come parte di un processo di generazione ? L'intenzione è di visualizzare un elenco di file che sono stati modificati dall'ultima versione, come passaggio manuale per confermare che la versione dovrebbe essere pubblicata. L'utente che ha attivato la generazione deve leggere l'output e quindi confermare che la versione dovrebbe andare avanti.

risposta

2

La maggior parte delle cose è possibile fare in Jenkins ma se è il modo migliore per farlo è un'altra domanda.

Per risolvere questo, utilizzerei un approccio con due processi uno per il controllo del diff (hock quello sul repository git) l'altro lavoro per fare il rilascio effettivo.

Il diff assegno lavoro

1 Creare un processo del progetto freestyle tipo con il tipo di costruzione "eseguire shell" ed eseguire lo script di cui sopra. Aggiungi alcune stampe alla fine del log per creare un link cliccabile per avviare manualmente il lavoro di rilascio con git-id corrente come argomento.

Proprio la stampa di un URL in uscita della console renderà cliccabile così:

export GITID=`git log -n| grep and sed or awk something` 
echo http://jenkins.example.com:8888/job/releaseme/buildWithParameters?label=$GITID&parameters=build 

sarà creare l'interfaccia utente accetta le modifiche che avete richiesto.

Il lavoro di rilascio

2 Creare un altro lavoro (sopra ho assunto è denominata esso releaseme) lasciare che il lavoro ha un parametro come argomento (tick "Questa build è parametrizzato") rendono lasciare che l'argomento sia la git -se vorresti liberare. Crea lo script di rilascio in questo lavoro.

Problemi correlati