8

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

4

5 回答 5

12

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

task getBuildNumber << {
    ext.env = System.getenv()
    ext.buildNumber = env.BUILD_NUMBER?.toInteger()
    println "Build Number: $buildNumber"
}
于 2012-07-18T01:51:51.437 回答
10

事实证明,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

于 2014-03-12T19:23:21.927 回答
2

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

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

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

于 2012-07-17T21:34:16.067 回答
2

当前内部版本号作为 Jenkins 变量BUILD_NUMBER提供

  • 在 Unix 中,它为您设置为${BUILD_NUMBER}
  • 在 Windows 中,它以%BUILD_NUMBER%的形式提供

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

于 2012-07-17T20:04:57.610 回答
1

Git 插件从checkout()命令返回信息。在 Pipeline 脚本中,这可用于获取先前的提交:

def scmVars = checkout scm

scmVars.GIT_PREVIOUS_COMMIT
于 2020-11-19T16:11:14.280 回答