我有两个管道作业作业作业A和作业B。我需要通过作业A的工作空间url(比如 /var/lib/jenkins/workspace/JobA)被作业B使用。主要的想法是我试图复制由于maven构建而生成的目标文件夹的内容,但我不想使用复制工件插件或存档工件插件来实现同样的目的。
我尝试过使用“此作业已参数化”选项,其中作业A是作业B的上游,但我无法使用该选项。
有人能帮助实现同样的目标吗?
然后,在作业 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并使用它来复制工件。
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到底是从哪里挑选的? 这是