2016-03-09 31 views
2

克隆超時可以使用被指定:如何在Jenkins Git插件中指定結帳超時?

git { 
    ... 
    cloneTimeout(60) 
} 

其中60是超時是分鐘。我讀過結帳超時也可以指定,但我無法找到詳細信息。 checkoutTimeout(...)timeout(...)都會給出錯誤。

EDIT

我可以通過詹金斯GUI(Configuration - >SCM - >Git - >Additional Behaviors - >Advanced Checkout Behaviors - >Timeout)設置的結賬超時。我希望在爲Jenkins生成Docker配置的Groovy腳本中執行同樣的操作:

... 
public class DockerJob { 
... 
    multiscm { 
     git { 
      remote { 
       url(...) 
       branch(...) 
       ... 
      } 
      shallowClone() 
      cloneTimeout(60) 
      // Add "checkout timeout" here... 
     } 
     ... 
    } 
    ... 
} 
... 
+0

您是否在通過Jenkins UI在作業配置中如何做到這一點? – rgulia

回答

2

經過一番實驗,我找到了如下所示的解決方案。

RECAP

結帳超時可以經由詹金斯GUI( - >SCM - >Git - >Additional Behaviors - >Advanced Checkout Behaviors - >TimeoutConfiguration)來設置。我想在Groovy腳本中爲Jenkins生成Docker配置。該腳本已經設置克隆超時。

... 
public class DockerJob { 
... 
    multiscm { 
     git { 
      remote { 
       url(...) 
       branch(...) 
       ... 
      } 
      shallowClone() 
      cloneTimeout(60) 
      // Add "checkout timeout" here... 
     } 
     ... 
    } 
    ... 
} 
... 

明顯

... 
// "Checkout timeout" 
checkoutTimeout(60) 
... 

沒有工作。設置超時一般

... 
// "Checkout timeout" 
timeout(60) 
... 

也沒有工作。然後評論一個網頁導致:

... 
// "Checkout timeout" 
extensions { 
    checkoutOptions { 
     timeout(60) 
    } 
} 
... 

那也沒有工作。最後...

SOLUTION

... 
public class DockerJob { 
... 
    multiscm { 
     git { 
      remote { 
       url(...) 
       branch(...) 
       ... 
      } 
      shallowClone() 
      cloneTimeout(60) 
      // "Checkout timeout" 
      configure { node -> 
       node/'extensions' << 'hudson.plugins.git.extensions.impl.CheckoutOption' { 
        timeout 60 
       } 
      } 
     } 
     ... 
    } 
    ... 
} 
... 
1

如何使用工作流程插件並執行類似操作?

checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CheckoutOption', timeout: 100]], submoduleCfg: [], userRemoteConfigs: [[]]]) 
+0

爲了簡單起見,我想要一個類似於克隆超時的解決方案(用於檢出超時)。 –

3

我曾與管道作爲CheckoutOption改變它像這樣是不是爲我工作

擴展:[$類:'CloneOption',timeout:120]]

Full checkout code

checkout([$class: 'GitSCM', branches: [[name: '*/master']], 
      extensions: [[$class: 'CloneOption', timeout: 120]], gitTool: 'Default', 
      userRemoteConfigs: [[credentialsId: key, url: repo]] 
     ]) 
+0

這很好,謝謝。 – dps