将Jenkins中的作业输出传递给另一个作业

sin*_*spd 8 jenkins

我对此做了很多研究,但找不到令人满意的答案.以下过程将是自动的,每晚重复,因此用户在运行时不能手动传递任何参数.父作业调用阻塞链中的所有以下子进程我的作业层次结构设置如下,主要作业和子进程如下:

Run-Tests-EveryNight(父作业) - > Create-A-Virtual-Machiene - > Run-Tests-on-VM

接下来,当您创建VM时,它会被分配一个生成的IP地址,我需要将该IP地址传递给Run-Tests-On-VM作为参数,但我似乎无法找到任何方法来执行此操作.

澄清:有些人发现问题不清楚:我问如何将动态创建的虚拟机IP地址作为参数传递给不同的作业(子进程)

注意:我已经阅读过有关复制工件的内容,但我觉得它在这种情况下不起作用(加上写入然后从文件中读取对于简单的参数传递来说太过分了.)

我觉得应该有一个非常简单的方法来做到这一点......

更新:建议使用参数化触发插件.我已经在使用并使用以下bash脚本来复制属性

# Create override properties file for functional tests
FILENAME="user.properties"
cd "path of the file goes here"
rm -f $FILENAME
echo "FQDN=$VM_FQDN" >> $FILENAME
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何写入此文件(或创建新的属性文件,将IP地址保存为构建后的操作

答:按照下面的答案,使用这些线程中的任何一个来修改属性文件或在Jenkins中使用注入选项 存档hudson/jenkins中的工件

如何根据我的个人资料更改maven中的.properties文件?

谢谢

小智 3

使用Christopher 提到的参数化触发器插件,但使用名为“来自属性文件的参数”的选项。

该文件具有简单的 key=value 结构,您可以在作业执行期间创建它,保存 IP 地址并稍后使用它将其传递到下一个作业。我通常将文件存储在构建工作区的某个位置,因此并行构建可以无缝处理。