【问题标题】:setting and accessing global environment variable in Jenkins在 Jenkins 中设置和访问全局环境变量
【发布时间】:2015-01-11 22:45:35
【问题描述】:

我有一个 Jenkins 管道视图。例如,第一份工作是BUILD,然后是DEPLOYTEST 工作。我在这里想要实现的是在测试作业中有一个“回滚逻辑”,这意味着当测试作业运行并且它成功时,我想将当前构建号设置为全局环境变量(这样我就可以潜在地从任何作业访问内部版本号)可能称为TESTED_BUILD_NO。但是如果测试失败,那么我想通过传递TESTED_BUILD_NO 来触发DEPLOY 作业,这将部署最后一个测试版本。

有一个名为promotion builds plugin 的插件,它提到了PROMOTION_BUILD_NO 变量,但是当我查看/env-vars.html 时它并没有在其中列出。我也厌倦了查看 api/xml,但没有提及任何促销变量。我在这里提到的这个逻辑可以使用这个插件来实现吗?如果不是,如何在 Jenkins 中设置和访问全局环境?

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    你总是可以使用lastStableBuild而不是使用全局变量,它是由jenkins自动设置的。在DEPLOY 作业中,使用从TEST 作业到lastStableBuild 的链接,其形式为:http://JENKINS_ADDRESS/job/JENKINS_JOB/lastStableBuild/

    据詹金斯wiki

    稳定构建 如果构建成功并且没有发布者报告它不稳定,则构建是稳定的。

    【讨论】:

    • 知道如何在我的测试作业中将构建报告设置为不稳定?
    • 通常,专用插件会为您完成。例如对于 jUnit 测试,使用 JUnit 插件:wiki.jenkins-ci.org/display/JENKINS/JUnit+Plugin。它将扫描和分析测试输出。如果发现任何失败,它会报告构建为不稳定:“构建步骤'发布 JUnit 测试结果报告'将构建结果更改为 UNSTABLE”
    【解决方案2】:

    建议您从系统管理屏幕管理全局变量:

    管理 Jenkins -> 配置系统 -> 全局属性 与在 Jenkins 外部设置这些相比更可靠。

    这可以使用脚本或通过执行 shell/batch 进行更改。 或者,您可以使用简单的 groovy 脚本根据先前的命令/构建状态更改值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-21
      • 2017-12-31
      • 1970-01-01
      • 2016-05-11
      • 1970-01-01
      • 2021-04-26
      • 2015-12-07
      • 1970-01-01
      相关资源
      最近更新 更多