如何在Jenkins Git插件中指定签出超时?

时间:2016-03-09 19:07:18

标签: jenkins jenkins-plugins

可以使用以下命令指定克隆超时:

git {
    ...
    cloneTimeout(60)
}

其中60是超时是分钟。我读到也可以指定结账超时但我找不到详细信息。 checkoutTimeout(...)timeout(...)都会出错。

修改

我可以通过Jenkins GUI设置结帐超时(Configuration - > SCM - > Git - > Additional Behaviors - > { {1}} - > Advanced Checkout Behaviors)。我想在Groovy脚本中执行相同操作,该脚本为Jenkins生成Docker配置:

Timeout

4 个答案:

答案 0 :(得分:5)

经过一些实验,我找到了如下所示的解决方案。

<强> RECAP

可以通过Jenkins GUI设置结帐超时(Configuration - &gt; SCM - &gt; Git - &gt; Additional Behaviors - &gt; {{ 1}} - &gt; Advanced Checkout Behaviors)。我想在Groovy脚本中执行相同的操作,该脚本为Jenkins生成Docker配置。该脚本已设置克隆超时。

Timeout

显而易见的

...
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)
    }
}
...

答案 1 :(得分:5)

由于 CheckoutOption 对我不起作用,我不得不用管道更改它

扩展程序:[[ $ class:&#39; CloneOption&#39;,timeout:120 ]]

完整的结帐代码

Current window 
<input type="text" name="amount" id="amount" style="border:0; color:#f6931f; font-weight:bold;">
<div class="geoframe">
<div class="sliderpos_inframe">
<div id="geoslider-range"></div>
<img id="tscaleimage" src="http:www.mikrotax.org/Nannotax3/graphics/timescale-narrow-rotated.png"/>
</div>

答案 2 :(得分:1)

如何使用工作流程插件并执行此类操作?

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

答案 3 :(得分:0)

在jenkins管道脚本中,遵循checkout配置非常适合我。我们像github一样使用stash1作为内部git服务器。用自己的替换它。

stage('Checkout') {
            steps {
                echo "Running checkout stage"
                checkout([$class: 'GitSCM', branches: [
                    [name: "*/${params.branch}"]
                ], doGenerateSubmoduleConfigurations: false, extensions: [
                    [$class: 'CleanCheckout'], [$class: 'CloneOption', timeout: 30, shallow: true]
                ], submoduleCfg: [], userRemoteConfigs: [
                    [credentialsId: 'ink_bot', url: "ssh://git@stash1.XYZ.com:7999/int_sparktp/${params.repo}.git"]
                ]])
            }
        }