Jenkins运行并行脚本

时间:2014-04-14 14:35:28

标签: jenkins

我是詹金斯的新手,需要一些帮助。

我有4个shell脚本:test1.sh,test2.sh,test3.sh和test4.sh

我希望test2.sh仅在test1.sh成功运行时运行,而test4.sh仅在test3.sh成功运行时运行。 我还希望test1.sh和test3.sh并行运行。

我怎样才能在Jenkins中实现它?

我正在使用“使用ssh在远程主机上执行shell脚本”和“条件步骤(多个)”(只是探索)。我还设置了密钥以便与远程服务器通信。

使用屏幕截图或其他方式的插图会有所帮助。

谢谢!

1 个答案:

答案 0 :(得分:9)

首先,确保test1.sh和test3.sh在成功时返回标准成功代码(0)。然后,在任何命令行中工作的简单方法,不仅仅是Jenkins,就是使用这个命令行:

((test1.sh && test2.sh) &) ; ((test3.sh && test4.sh) &)

每对括号形成一个子壳,双安培意味着“如果先成功再运行第二”,单个&符号表示“在backgorund中运行”。所以你得到相当于两个后台运行的shell,每个shell运行两个脚本,如果第一个脚本没有返回0,它将退出。

Jenkins特定的解决方案是拥有一个包含两个(或更多)跑步者的节点。创建两个作业,并将两者绑定到该节点。每个作业都运行一个shell,test1.sh && test2.shtest3.sh && test4.sh