如何根据jenkins访问最后构建的修订版?

时间:2012-07-17 16:17:30

标签: jenkins gradle

在我的构建控制台顶部附近,我看到一个“Last Built Revision:”w / a revision#。如何在构建脚本中访问最后构建的rev#?我正在使用Gradle,但我认为这不重要。 Jenkins是否在系统属性中提供最后构建的rev#?当然,从我的构建脚本访问这一定是微不足道的......

5 个答案:

答案 0 :(得分:12)

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

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

答案 1 :(得分:9)

事实证明,Git插件可以将最后一个构建版本导出为环境变量。所以不要使用接受的答案:

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

你可以改用它:

GIT_PREVIOUS_COMMIT

一种确保您的构建脚本可以使用的确切内容的一种防错方法是选择Add Build Step > Execute Shell,然后只需添加以下内容:

export

查看您的控制台(用于构建),您应该会看到许多可用的环境变量。我可以使用的git相关变量(使用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

答案 2 :(得分:2)

当前版本号以Jenkins变量 BUILD_NUMBER

提供
  • 在Unix中,它设置为 $ {BUILD_NUMBER}
  • 在Windows中,它可用作%BUILD_NUMBER%

Jenkins服务器上提供了完整的变量列表,网址为:
http:// [your-jenkins-server] / env-vars.html

答案 3 :(得分:2)

我认为git插件不会将最后构建的版本导出为环境变量,但使用简单的shell命令可以轻松获取信息:

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

BUILD_URL始终指向构建自己的页面,其余信息似乎可以使用xml api获得。

答案 4 :(得分:0)

Git插件从checkout()命令返回信息。在管道脚本中,这可用于获取上一个提交:

def scmVars = checkout scm

scmVars.GIT_PREVIOUS_COMMIT