当前位置: 首页 > 知识库问答 >
问题:

在Jenkins中将作业A的工作空间url传递给作业B

鲁彬炳
2023-03-14

我有两个管道作业作业作业A和作业B。我需要通过作业A的工作空间url(比如 /var/lib/jenkins/workspace/JobA)被作业B使用。主要的想法是我试图复制由于maven构建而生成的目标文件夹的内容,但我不想使用复制工件插件或存档工件插件来实现同样的目的。

我尝试过使用“此作业已参数化”选项,其中作业A是作业B的上游,但我无法使用该选项。

有人能帮助实现同样的目标吗?

共有2个答案

沈子实
2023-03-14

然后,在作业 A 的管道脚本中,我通过传递 WORKSPACE env 变量调用了作业 B。下面是作业 A 的声明性管道脚本:

pipeline {
agent any
stages
{
    stage ('Build JobB')
    {
        steps {
          build job: 'jobB', parameters: [string(name: 'UPSTREAM_WORKSPACE', value: "${env.WORKSPACE}")]
        }
    }
} }

现在,在作业B管道中,您可以尝试回显变量UPSTREAM_WORKSPACE。这就是我们如何传递工作区url并使用它来复制工件。

鲁峰
2023-03-14

WORKSPACE变量是Jenkins的一个env变量,指向的是/。

For eg. 

If the job name is Job_A --> the workspace value will be <jenkins_path>/Job_A

For eg. 

If the job name is Job_B --> the workspace value will be <jenkins_path>/Job_B

所以你不能使用工作空间变量并期望Job_B指向Job_A工作空间值。

以下内容可用于从上游作业获取某些属性。

Jenkins-如何在下游获取和使用上游信息

即使您想在Job_B中硬编码它也没关系(不推荐)此外,为了使其正常工作,您的节点对于两个作业都应该相同

 类似资料:
  • 问题内容: 我有2个工作(A和B)。作业A指向URL-A上的git存储库。作业B指向URL-B上的另一个git repo。 作业A完成并稳定后,它将触发作业B并传递在作业A的构建中使用的git commit哈希。 最简单的方法是什么? (作业B对应于从URL-B中检出的脚本,该脚本具有2个参数:git commit哈希和JAR工件,这些工件将包装在Docker映像中并推送到Docker中心) 问题

  • 我正在使用jenkins job DSL插件创建一个jenkins pipeline作业来播种作业。如何获得DSL文件中的工作空间路径?詹金斯管道代码是这样的: 失败的 DSL 代码是: 出现错误: 在管道区域中创建的变量在作业DSL步骤中不可访问

  • 问题内容: 我是cron工作的新手,不确定是否会奏效。 为了安全起见,我考虑过制作一个一页脚本,该脚本查找某些GET值(用户名,密码和安全代码),以确保只有计算机和知道这3种信息的人才能运行该命令。 我制作了脚本,并且可以在浏览器中运行该脚本,但是可以使用GET值运行cron作业吗? 一个例子就是我跑步 这可能吗? 问题答案: 仅当通过Web服务器调用脚本时,&关联数组才被初始化。通过命令行调用时

  • 问题内容: 我有一个名为 buildall 的管道作业,如下所示: 该 buildall 作业有25个参数。我想将所有 buildall 的参数传递给 job1 。有没有一种简单的方法可以代替手动指定每个参数呢? 在此问题中:向下游作业传递管道参数是一个子问题,但从未得到回答: 甚至更好的是,有没有一种麻烦的方法可以将所有管道参数传递给下游作业。 我有同样的问题。 问题答案: 以下似乎有效(尽管我

  • 我们正在实施Spring批量作业, 我们需要将作业参数从Client/MASTER传递给SLAVE。CLIENT/MASTER是我们的作业和分区代码所在的位置。我们使用传递JOB参数的J Unit调用JOB。 SLAVE是定义所有步骤及其实现(读取器Writer和处理器)的地方。 我们能够以独立的方式实现这一点,但不能与客户一起实现 我们正在使用Weblogic和Spring集成以及JMS来实现同

  • 我正在使用spring batch,但由于作业实例已经存在错误,我需要在我的作业参数中添加当前时间。我无法确定在哪里添加作业参数。下面是我的代码: 当我尝试为相同的多次运行作业时,我会得到错误,所以我需要将当前时间戳添加到我的作业参数中。在bean中添加当前时间戳作为属性就足够了,还是需要在其他地方添加jobparameter?spring文件中jobparameters到底是从哪里挑选的? 这是