Jenkins 构建提升:如何获取我想要提升的构建的构建 ID?

Posted

技术标签:

【中文标题】Jenkins 构建提升:如何获取我想要提升的构建的构建 ID?【英文标题】:Jenkins build promotion: How do I get the build id of the build I want to promote? 【发布时间】:2012-02-23 17:34:19 【问题描述】:

似乎,当使用Promoted Builds Plugin 在Jenkins 中进行构建提升时,它会生成一个新的BUILD_ID 环境变量。有没有办法或插件可以让您访问您正在尝试推广的构建的当前 BUILD_ID?

基本上,我需要的功能是:导航到 Jenkins 中的构建,能够启动 ant 或 gradle 脚本来提升已构建的工件,该工件存档在我当前所在的构建下。

【问题讨论】:

【参考方案1】:

使用 PROMOTED_JOB_NAME 和 PROMOTED_NUMBER 变量获取正在提升的构建的名称和构建号。这两个值仅在提升过程中设置;他们是创造就业机会的一部分。这并不完全映射到 BUILD_ID,但它确实允许访问该构建。

当我过去遇到这个问题时,我做了以下事情。

    让原始作业将某些变量(如 JOB_ID)复制到配置样式文件(每行是 NAME=VALUE)。 将该文件归档为构建的一部分。 在升级时,使用 PROMOTED_JOB_NAME 和 PROMOTED_NUMBER 变量来获取原始版本,将值输入Copy Artifact Plugin 以检索归档的值文件,然后使用带有该值文件的EnvInject Plugin 带来推广过程中的价值观。

【讨论】:

好的,我不确定我是否完全遵循。 PROMOTED_NUMBER 和 PROMOTED_JOB_NAME 在什么时候设置?此外,在构建下归档配置文件会产生一个我必须开始的类似问题 - 我如何访问构建?对我来说解决问题的是参数化构建是否可以采用动态值。如果我可以分配 BUILD_TIME = %BUILD_ID%。或类似的东西。 更新答案:PROMOTED_* 变量是作为促销过程的一部分创建的。它们不是典型的工作构建的一部分。 我正在进行促销活动,这些变量在促销时似乎为空。我一定是错过了什么。 使用最新版本的 Jenkins?一种验证方式;在升级命令中,执行 Shell 并运行 SET 以查看所有变量。 好的,所以我需要 PROMOTED_ID 而不是 PROMOTED_NUMBER,除此之外一切都好。这对我有用。我不需要设置其他环境变量,我可以使用 PROMOTED_ID 而不是 BUILD_ID。谢谢!

以上是关于Jenkins 构建提升:如何获取我想要提升的构建的构建 ID?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Jmeter,maven,Jenkins构建云性能测试平台

从批处理脚本中引发 Jenkins 作业中止

如何在自制软件上使用 mpi 支持来构建提升?

如何使用“clang-win”工具集构建调试提升静态库?

代码提升:构建还是二进制?

智能交付:自动化构建之Jenkins移动篇