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

时间:2015-09-03 16:31:31

标签: jenkins

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

Run-Tests-EveryNight(父作业) - > Create-A-Virtual-Machiene - >运行测试-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

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

答案:按照以下答案,使用以下任一线程修改属性文件或在Jenkins中使用注入选项 Archive the artifacts in hudson/jenkins

How can I change a .properties file in maven depending on my profile?

由于

2 个答案:

答案 0 :(得分:3)

使用Christopher提到的Parametrized Trigger Plugin,但使用名为属性文件中的参数的选项。

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

答案 1 :(得分:1)

您可以使用Parameterized Trigger Plugin触发“运行测试”作业,并将IP地址值作为参数。