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

Ray*_*lus 8 gradle jenkins

在我的构建控制台的顶部附近,我看到一个"最后修改版本:",带有修订版#.如何在构建脚本中访问最后构建的rev#?我正在使用Gradle,但我认为这不重要.Jenkins是否在系统属性中提供最后构建的rev#?当然,从我的构建脚本访问这一定是微不足道的......

Ben*_*hko 12

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

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


gMa*_*ale 9

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

curl -sf "$BUILD_URL/api/xml?xpath=//lastBuiltRevision/SHA1/text()"
Run Code Online (Sandbox Code Playgroud)

你可以改用它:

GIT_PREVIOUS_COMMIT
Run Code Online (Sandbox Code Playgroud)

一种确保构建脚本可用的确切选择的故障方法是选择Add Build Step > Execute Shell然后添加以下内容:

export
Run Code Online (Sandbox Code Playgroud)

查看您的控制台(用于构建),您应该会看到许多可用的环境变量.我可以使用的git相关变量(使用git插件)是:

GIT_AUTHOR_EMAIL
GIT_AUTHOR_NAME
GIT_BRANCH
GIT_COMMIT
GIT_COMMITTER_EMAIL
GIT_COMMITTER_NAME
GIT_PREVIOUS_COMMIT
GIT_URL
Run Code Online (Sandbox Code Playgroud)

最后,要查看不太全面的可用环境变量列表,您还可以转到此URL: http://[your-jenkins-domain-and-port]/env-vars.html


sti*_*sti 2

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

curl -sf "$BUILD_URL/api/xml?xpath=//lastBuiltRevision/SHA1/text()"
Run Code Online (Sandbox Code Playgroud)

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