Cómo hacer que Jenkins empuje a GitHub pero no desencadenar una creación de ese empuje

La puesta en marcha

Tengo un Mac mini configurado con Jenkins sacando un repo de GitHub y realizando una construcción de Xcode. Debido a que el mini está cortafuegos de internet, estoy sondeando a GitHub por cambios cada 15 minutos.

Antes de iniciar la compilation de Xcode, Jenkins ejecuta el siguiente script para boost el número de compilation de mi proyecto y enviar los resultados al repository:

#!/bin/sh agvtool bump -all /usr/local/git/bin/git commit -a -m "This is Jenkins, updating your build numbers, sir." 

Después de la compilation, tengo una acción de post-construcción configurada para ejecutar otra secuencia de commands que tira y luego empuja desde GitHub, de esta manera:

 #!/bin/sh /usr/local/git/bin/git pull origin develop /usr/local/git/bin/git push origin develop 

El problema

Debido a que Jenkins está realizando un commit y un push a GitHub cada vez que se ejecuta, la próxima encuesta encontrará los cambios que realizó la última vez, creando una nueva versión, ya sea que haya otros cambios reales o no.

La pregunta

¿Hay algo raro en mi configuration que debería estar haciendo de manera diferente? Me gustaría que Jenkins actualice el número de compilation de mi objective Xcode y comprometa y envíe ese resultado a GitHub. Esta configuration obviamente logra eso, pero con el efecto secundario de una construcción cada 15 minutos, en lugar de una construcción cada 15 minutos según sea necesario.

Jenkins está consultando el SHA1 de lastSuccessfulBuild para determinar si ha habido cambios, pero lo está haciendo antes de mi compromiso. ¿Hay alguna manera de establecer el SHA1 de la compilation actual en el hash resultante de la confirmación del aumento del número de versión? Algo así:

 #!/bin/sh agvtool bump -all /usr/local/git/bin/git commit -a -m "This is Jenkins, updating your build numbers, sir." NEW_SHA=$(/usr/local/git/bin/git rev-parse HEAD) # Some awesome Jenkins-fu to set the SHA1 of the current build to NEW_SHA 

De esta forma, cuando Jenkins compare hashes la próxima vez, no se comstackrá a less que haya habido cambios desde que se comprometió a alcanzar los numbers de versión.

Gracias por cualquier y toda la ayuda.

Creo que esta pregunta ASÍ responde a su pregunta, pero no puedo decir con certeza, ya que no estamos haciendo el incremento de la versión de compilation en una twig de votación. También haría el git push antes de build, de esa manera no tendrás que preocuparte por la cantidad de fusiones que se producirían si cometieras código durante la compilation. Afortunadamente, si lo mantienes como es, no tendrás mucho de qué preocuparte en el process de fusión de proyectos de Xcode.