【问题标题】:Jenkins save a variable in post build step詹金斯在后期构建步骤中保存一个变量
【发布时间】:2019-11-22 20:27:41
【问题描述】:

我正在尝试在 jenkins 作业完成后保存一个变量。每次作业完成后,此变量将被覆盖。其他作业应该能够访问此变量。詹金斯有没有办法做到这一点?有什么插件可以解决这个问题?

【问题讨论】:

  • 作业交换数据的方式有很多种。使用哪一个,取决于您的用例。你能详细说明一下吗?
  • 因此 2 个作业使用不同的工作空间。我需要 job1 最后保存一些变量。作业 2 将需要根据构建参数读取其中一个。也许像 Jenkins 中的全局变量?还是像地图变量(键,值对)?如果可能的话。
  • job1是job2发起的吗?然后你可以使用getBuildVariables()

标签: jenkins jenkins-groovy


【解决方案1】:

假设你使用free-style job,你需要做以下两个步骤:

  1. 通过单击Lable Expression附近的Advance...按钮,设置所有作业与第一个作业工作区在同一工作区运行,勾选Use custom workspaces,在Directory中填写相同的值

  1. 在每个作业构建阶段结束时将变量输出到上述目录中的文件中,格式为:var1=xxxx

  2. 通过Inject environment variables to the build process在每个作业中加载文件

如果你使用管道即代码,它会更容易,因为一个管道中的所有阶段共享相同的工作空间和顶级环境和变量可以在所有阶段访问。

【讨论】:

  • 如果是不同的工作空间,有没有办法做到这一点?
  • 我不确定它是否会起作用,但您可以尝试在构建部分添加两个步骤:1)从另一个项目复制工件。 2)注入环境变量
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-14
  • 1970-01-01
  • 2018-01-23
  • 1970-01-01
  • 2018-02-13
  • 1970-01-01
  • 2016-09-08
相关资源
最近更新 更多