【问题标题】:Passing the output of a job in Jenkins to another job将 Jenkins 中的工作输出传递给另一个工作
【发布时间】:2015-11-29 14:34:00
【问题描述】:

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

Run-Tests-EveryNight(父作业)--> Create-A-Virtual-Machiene --> Run-Tests-On-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?

谢谢

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    使用克里斯托弗提到的Parametrized Trigger Plugin,但使用名为属性文件中的参数的选项。

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

    【讨论】:

    • 是的,我已经在使用插件了。我有一个 bash 脚本可以从文件中复制属性(请参阅更新),但是您能否扩展您的回答以解释如何写入已经存在的属性文件(或者创建一个新的)作为构建后操作?
    【解决方案2】:

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

    【讨论】:

    • 我已经在使用它来创建一个阻塞的事件链。根据您提供的文档,我取得了一定的进展。请参阅更新以获取说明
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多