Issue
Clone timeout can be specified using:
git {
...
cloneTimeout(60)
}
where 60 is timeout is minutes. I read that checkout timeout can also be specified but I cannot find details. Both checkoutTimeout(...)
and timeout(...)
give an error.
EDIT
I can set the checkout timeout 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:
...
public class DockerJob {
...
multiscm {
git {
remote {
url(...)
branch(...)
...
}
shallowClone()
cloneTimeout(60)
// Add "checkout timeout" here...
}
...
}
...
}
...
Solution
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
}
}
}
...
}
...
}
...
Answered By - Petr Vepřek
Answer Checked By - Dawn Plyler (JavaFixing Volunteer)