2012-07-17 65 views
7

靠近我的编译控制台的顶部,我看到一个“Last Built Revision:”带有一个修订号#。我如何在构建脚本中访问最后一次构建的rev#?我正在使用Gradle,但我认为这不重要。詹金斯是否在系统属性中提供了最后一次生成的rev#?当然这必须是微不足道的,从我的构建脚本访问...如何根据jenkins访问上次构建的修订版?

回答

1

我不认为Git插件可出口的最后修订建作为一个环境变量,但信息容易获得,使用简单的shell命令,如:

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

BUILD_URL总是指向构建自己的网页和信息的休息似乎使用XML API可用。

2

目前集结号作为詹金斯变量BUILD_NUMBER提供

  • 在Unix可以设置为你为$ { BUILD_NUMBER}
  • 在Windows中可用的是%BUILD_NUMBER%

变量的完整列表,我
HTTP:提供您的詹金斯的服务器上,在s // [您的詹金斯服务器]/ENV-vars.html

+0

评论这里,因为这是获得詹金斯内部编号的正确答案。但是,如果您的问题是关于Mercurial存储库的版本号,那么您需要从克隆存储库“hg id -n”中执行以下命令,然后适当地指导输出(即将其读入一个变量或日志文件 – 2012-07-18 13:15:23

12

您可以直接访问Jenkins BUILD_NUMBER作为系统环境变量。

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

'env.BUILD_NUMBER'不包含VCS版本,但是Jenkins的版本号在某些情况下很有用,但据我所知它不是OP所要求的 – 2017-12-15 13:37:41

7

原来,Git插件会将最后的构建版本导出为环境变量。因此,而不是使用公认的答案:

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

你可以用这个来代替:

GIT_PREVIOUS_COMMIT 

一个failproof方式,看看到底什么是提供给您的构建脚本是选择Add Build Step > Execute Shell则只需添加以下:

export 

查看你的控制台(对于构建),你应该看到很多伟大的环境变量可供你使用。这是提供给我的混帐相关的变量(使用Git的插件)分别为:

GIT_AUTHOR_EMAIL 
GIT_AUTHOR_NAME 
GIT_BRANCH 
GIT_COMMIT 
GIT_COMMITTER_EMAIL 
GIT_COMMITTER_NAME 
GIT_PREVIOUS_COMMIT 
GIT_URL 

最后,以查看可用的环境变量的不全面列表,你也可以去这个网址:http://[your-jenkins-domain-and-port]/env-vars.html

+0

请注意,这些变量不是可用(尚未)在管道插件下,等待解决[JENKINS-35230环境变量的git插件不能在管道脚本中工作](https:// issues。jenkins-ci.org/browse/JENKINS-35230) – 2016-10-14 04:48:37

相关问题