How to specify Job DSL checkout timeout in Jenkins Git plugin?
I had to change it like this with the pipeline as the CheckoutOption was not working for me
extensions: [[$class: 'CloneOption', timeout: 120]]
Full checkout code
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [[$class: 'CloneOption', timeout: 120]], gitTool: 'Default', userRemoteConfigs: [[credentialsId: key, url: repo]] ])
After some experimentation, I found the solution shown below.
RECAP
Checkout timeout can be set via Jenkins GUI (Configuration
--> SCM
--> Git
--> Additional Behaviors
--> Advanced Checkout Behaviors
--> Timeout
). I'd like to do the same in a Groovy script that generates Docker configurations for Jenkins. The script already sets clone timeout.
...public class DockerJob {... multiscm { git { remote { url(...) branch(...) ... } shallowClone() cloneTimeout(60) // Add "checkout timeout" here... } ... } ...}...
The obvious
...// "Checkout timeout"checkoutTimeout(60)...
did not work. Setting timeouts in general
...// "Checkout timeout"timeout(60)...
also did not work. Then comment on a web page lead to:
...// "Checkout timeout"extensions { checkoutOptions { timeout(60) }}...
that also did not work. Finally...
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 } } } ... } ...}...
How about using the workflow plugin and do something like this?
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CheckoutOption', timeout: 100]], submoduleCfg: [], userRemoteConfigs: [[]]])