2012-07-17 7 views
7

Cerca de la parte superior de mi consola de compilación veo una "Última revisión incorporada" con un número de revisión. ¿Cómo puedo acceder a este último build rev # en mi script de compilación? Estoy usando Gradle, pero no creo que eso importe aquí. ¿Proporciona Jenkins el último rev # construido en una propiedad del sistema? Sin duda, esto debe ser trivial para acceder desde mi script de construcción ...¿Cómo puedo acceder a la última revisión construida de acuerdo con jenkins?

Respuesta

1

No creo que el plugin git exporta la última revisión construido como una variable de entorno, pero la información es fácilmente disponible mediante un simple comando shell como:

curl -sf "$BUILD_URL/api/xml?xpath=//lastBuiltRevision/SHA1/text()" 

BUILD_URL siempre apunta a la página propia de la construcción y el resto de la información parece estar disponible usando la API XML.

2

La acumulación número actual se proporciona como Jenkins variable BUILD_NUMBER

  • En Unix se establece para usted como $ { BUILD_NUMBER}
  • En Windows está disponible como % BUILD_NUMBER%

La lista completa de las variables i s disponibles en el servidor de Jenkins, en: http: //
[Jenkins-su-servidor]/env-vars.html

+0

Comentando aquí ya que esta es la respuesta correcta para obtener el número de compilación de Jenkins. Sin embargo, si su pregunta era sobre el número de Revisión de un repositorio de Mercurial, entonces querrá ejecutar el siguiente comando desde un repositorio de clones "hg id -n" y luego dirigir el resultado de manera apropiada (es decir, leerlo en una variable o archivo de registro –

12

Puede acceder directamente a Jenkins BUILD_NUMBER como variable de entorno del sistema.

task getBuildNumber << { 
    ext.env = System.getenv() 
    ext.buildNumber = env.BUILD_NUMBER?.toInteger() 
    println "Build Number: $buildNumber" 
} 
+0

'env.BUILD_NUMBER' no contiene la revisión de VCS, pero el número de compilación de Jenkins. Eso es útil en algunos casos, pero hasta donde sé, no es lo que pide el OP –

7

Resulta que el plugin de Git DOES exporta la última revisión de construcción como una variable de entorno. Así que en lugar de utilizar la respuesta aceptada:

curl -sf "$BUILD_URL/api/xml?xpath=//lastBuiltRevision/SHA1/text()" 

sólo puede utilizar esto en su lugar:

GIT_PREVIOUS_COMMIT 

Una forma a prueba de fallos para ver exactamente lo que está disponible para su escritura de la estructura es elegir Add Build Step > Execute Shell continuación, sólo tiene que añadir el siguiente :

export 

ver su consola (para la compilación) y debe ver muchas variables de gran ambiente disponibles para usted. Las variables relacionadas con git-que estaban disponibles para mí (usando el plugin GIT) fueron:

GIT_AUTHOR_EMAIL 
GIT_AUTHOR_NAME 
GIT_BRANCH 
GIT_COMMIT 
GIT_COMMITTER_EMAIL 
GIT_COMMITTER_NAME 
GIT_PREVIOUS_COMMIT 
GIT_URL 

Por último, para ver una lista menos amplio de variables de entorno disponibles, también se puede ir a la siguiente dirección: http://[your-jenkins-domain-and-port]/env-vars.html

+0

Tenga en cuenta que estas variables no son disponible (todavía) bajo el plugin de tubería, a la espera de la resolución de [JENKINS-35230 Las variables de entorno del plugin git no funcionan en el script de tubería] (https: // issues.jenkins-ci.org/browse/JENKINS-35230) –

Cuestiones relacionadas