2013-11-01 13 views
8

È possibile annullare o saltare un lavoro in Jenkins a causa di speciali schemi di messaggio di commit? Ho pensato che l'opzione "Esclusi commenti di commit" nella configurazione del lavoro lo faccia subito, come già detto here. Ma non importa quale espressione regolare scrivo in questo campo, la compilazione viene comunque eseguita.Jenkins: evita la generazione per messaggio di commit

Ad esempio: Desidero eseguire il processo di compilazione solo se il messaggio di commit include l'espressione "release". Così scrivo l'espressione regolare [^ (?: release)] nel campo dei commenti sul commit esclusi. Ho pensato che se commetto una revisione con, ad esempio "test commit", il job build non funziona, giusto? È questo il modo giusto per farlo quando non usi un hook post-commit?

+0

Hai provato le espressioni più semplici? Cerca di ottenere una corrispondenza che escluda indipendentemente da quanto sia semplice. – hofan41

risposta

4

Plugin Git Jenkins espone la variabile di ambiente GIT_COMMIT che, naturalmente, contiene l'attuale hash commit git. Usa [Jenkins condizionale Passo] e costruire un passo che esegue il seguente shell bash:

echo "===========================" 

if [ "git show $GIT_COMMIT | grep "your-pattern-here" == false ] ; then 
     echo "pattern failed"; 
     exit 1 
else 
     echo "ok" 
fi 

echo "===========================" 

e Marco che, se il guscio non riesce, non riescono la compilazione.

+1

Penso che il codice sopra sia vicino, ma non del tutto corretto. Questo è ciò che ha funzionato per me ... 'code' se [[$ (git mostra $ GIT_COMMIT | grep" [stringa per saltare commit] "| wc -m) -ne 0]]; quindi echo "salta questo commit" exit 0 else echo "ok per compilare" fi 'codice' – adampasz

3

risposta in ritardo, ma possono aiutare qualcuno in futuro, esiste un plugin per saltare accumulo a seconda git commit messaggio, solo includono un [ci-saltare] nel messaggio Junkin commettere salterà l'accumulo

jenkins-ci-skip-plugin

Problemi correlati