2016-02-26 176 views
0

我在Jenkins中有一个将代码复制到多个服务器的power shell作业。有时,脚本可能无法到达服务器,并且会破坏构建。当我从列表中删除服务器并恢复构建时,它从步骤1(服务器1)开始。 Jenkins有什么方法可以暂停特定步骤的构建,并让用户从停止的地方恢复构建。如何暂停和恢复Jenkins构建

请让我知道。

+0

我还没有听说过这样的功能,但你检查过Jenkins插件吗? – Cobster

+0

是的,我查了一下,没有找到符合我要求的东西。 – user1550159

+0

我不确定谁会创建这样的插件!对不起,这听起来很奇怪。 通常它应该由脚本本身处理。 – vins

回答

0

您可以用Jenkins Pipeline实现所需的行为。下面是应该解释我的想法的代码草案。

def remoteServers = [ipaddr1, ipaddr2,...] // define all remote hosts servers in the groovy code 
for (int i=0; i<remoteServers.size(); i++) { // c-style loop is to avoid JENKINS-26481 
    def ip = remoteServers[i] 
    try { 
     bat "your script here" // ip should be passed as a parameter 
           // or interpolated right within the inlined script 
    catch { 
     input "Retry for ${ip}?" // This will pause the build waiting for user action 
     i-- // repeat the iteration 
    } 
} 

然而,这不允许在任意时刻暂停建设(在技术上它可以)。