一尘不染

Jenkins运行并行脚本

jenkins

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

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

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

我如何在詹金斯实现呢?

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

使用屏幕快照或其他方式进行插图会很有帮助。

谢谢!


阅读 579

收藏
2020-07-25

共1个答案

一尘不染

首先,确保test1.sh和test3.sh成功时返回标准成功代码(0)。然后,可以在任何命令行(不仅是Jenkins)上运行的简单方法是使用以下命令行:

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

每对括号形成一个子外壳,双“&”表示“如果先成功则运行第二”,而单“&”表示“在backgorund中运行”。因此,您将获得相当于两个后台外壳程序的外壳程序,每个外壳程序运行两个脚本,如果第一个脚本未返回0,则将退出。

詹金斯特定的解决方案是使一个节点具有两个(或更多)流道。创建两个作业,然后将两个作业都绑定到该节点。每个作业都运行单个外壳程序test1.sh && test2.sh,或者test3.sh && test4.sh

2020-07-25