ver pendientes modificados log ejemplo commits comandos archivos and jenkins jenkins-pipeline jenkins-workflow multibranch-pipeline

pendientes - ¿Cómo obtener el último mensaje de commit de git y evitar la creación de jenkins si el mensaje de confirmación contiene[ci skip]?



git ver archivos modificados (3)

Creo que podría hacerlo fácilmente en la configuración de trabajos de canalizaciones múltiples. Orígenes de la sucursal> Comportamientos adicionales> Sondeo ignora confirmaciones con ciertos mensajes

Traté de obtener el mensaje de confirmación de git en jenkinsfile y evitar la compilación en función del mensaje de confirmación.

env.GIT_COMMIT no devuelve los detalles de confirmación en jenkinsfile.

¿Cómo obtener el último mensaje de confirmación de git y evitar la compilación de jenkins si el mensaje de confirmación contiene [ci skip] en él?


La construcción pasará cuando [ci skip] se proporcione en el último registro de git, pero no ejecutará el código de construcción real (el reemplazo de la primera declaración de eco)

node { checkout scm result = sh (script: "git log -1 | grep ''//[ci skip//]''", returnStatus: true) if (result != 0) { echo "performing build..." } else { echo "not running..." } }


Tuve el mismo problema. Estoy usando tuberías. Resolví este problema implementando una biblioteca compartida .

El código de la biblioteca es este:

// vars/ciSkip.groovy def call(Map args) { if (args.action == ''check'') { return check() } if (args.action == ''postProcess'') { return postProcess() } error ''ciSkip has been called without valid arguments'' } def check() { env.CI_SKIP = "false" result = sh (script: "git log -1 | grep ''.*//[ci skip//].*''", returnStatus: true) if (result == 0) { env.CI_SKIP = "true" error "''[ci skip]'' found in git commit message. Aborting." } } def postProcess() { if (env.CI_SKIP == "true") { currentBuild.result = ''NOT_BUILT'' } }

Entonces, en mi Jenkinsfile:

pipeline { stages { stage(''prepare'') { steps { ciSkip action: ''check'' } } // other stages here ... } post { always { ciSkip action: ''postProcess'' } } }

Como puede ver, la compilación está marcada como NOT_BUILT . Puede cambiarlo a ABORTED si lo prefiere, pero no se puede establecer en SUCCESS porque el resultado de una construcción solo puede empeorar