当前位置: 首页 > 面试题库 >

Jenkins + Build Flow,如何将变量从一项工作传递到另一项工作

秦跃
2023-03-14
问题内容

我有一个类似于文档示例的构建流程场景:两个作业,一个在另一个上运行。

b = build("job1")
build("job2", param1: b.????)

My job1是一个Shell脚本,它从检出的git repositoy构建一个包,并打印出所构建包的版本。

我需要从job1(解析输出?)中提取版本,并以某种方式将其用作的参数job2。如何做到这一点?请注意我在运行之前不知道版本job1


问题答案:

export在shell脚本构建步骤中简单使用的问题是,退出的变量在shell脚本退出时消失,它们不会传播到作业中。

使用EnvInject插件在您的构建中创建环境变量。如果您在构建过程中写出属性文件,则EnvInject可以读取该文件并在构建步骤中注入变量。属性文件具有简单的KEY=VALUE格式:

MY_BUILD_VERSION=some_parsed_value

一旦在工作中设置了环境变量,就可以在Build Flow插件中提取该变量的值并在后续工作中使用它:

def version = build.environment.get( "MY_BUILD_VERSION" )
out.println String.format("Parameters: version: %s", version)
build( "My Second Build", MY_BUILD_VERSION: version )


 类似资料:
  • 问题内容: 我有两个 newAccessLevels.java ,它有两个按钮“ Level 1”,“ Level 2”和 newAccessPanel.java。 我需要获取用户选择“ 1或2”的级别,以便可以在标题中显示它。 accessPanel.java, 例如访问级别1,访问级别2。如何完成此操作。下面是示例代码,因此,如果单击级别1,则将打开标题为* ACCESS LEVEL 1 的n

  • 我有一个来自firebase的uid,但它是这样存储的: checkout.js 存储我需要传递到另一个页面的uid。这个uid存储在中,我需要将它放到中才能在那里使用uid。我该怎么做?如果需要更多代码,请让我知道。我正在使用react/js

  • 问题内容: 我在jenkins有两个工作,这两个工作都需要相同的参数。 如何使用参数运行第一个作业,以便在触发第二个作业时使用相同的参数? 问题答案: 您可以使用参数化触发器插件,该插件可让您将参数从一个任务传递到另一任务。 您还需要在上游添加从上游传递的此参数。

  • 问题内容: 我有BuildFlow做了一个工作,这个工作接收参数一样,, 。 在我的DSL我单独一个参数的值,所以现在我有一个数组:。 现在,我想让DSL用X构建并行运行一个子作业,其中X是数组的大小,并迭代将数组的每个位置作为参数传递给子作业的构建。 问题答案: 在您的dsl中尝试以下操作: 此代码段使用此处记录的并行作业执行语法。 默认情况下,Groovy会正确处理“并行” -DSL 的列表,

  • 我想将GitLab CI与.gitlab-ci.yml文件一起使用以使用单独的脚本运行不同的阶段。第一阶段生成一个工具,该工具必须在稍后阶段用于执行测试。我已将生成的工具声明为工件。 现在我如何在后期工作中执行该工具?正确的路径是什么,它周围会有哪些文件? 例如,第一阶段构建工件/bin/TestTool/TestTool。exe,该目录包含其他必需的文件(DLL和其他文件)。我的gitlab c

  • 问题内容: 我想根据例如从jenkins传递的变量来运行测试用例,请选择要运行的测试用例:testcaseOne,testcaseTwo 在pom.xml(maven)中: 我有两个testng @test方法: 还有我的testng.xml文件: 如何根据我要运行的测试数量和数量来传递此参数?也许有完全不同的方式来做到这一点? 问题答案: 您可以在testng.xml文件http://testn