2014-04-14 157 views
4

我是新来詹金斯,需要一些帮助..詹金斯平行运行脚本

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

我想测试2 .sh只在test1.sh运行成功时运行,而test4.sh只在test3.sh运行成功时才运行。 我也想让test1.sh和test3.sh并行运行。

我怎么能在詹金斯实现它?

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

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

谢谢!

回答

7

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

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

每对括号形成一个子shell,双amperands表示“如果第一次成功,然后运行第二个” ,而单符号意味着“在backgorund中运行”。所以你可以得到相当于两个后台运行的shell,每个运行两个脚本,如果第一个脚本不返回0,将会退出。

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