I have setup a Jenkins Declarative Pipeline job, and it pulls the Jenkinsfile from Git. I have a stage that is running on a another node (selected by a label), but it is trying to checkout the Jenkinsfile from Git too.
How can I stop this behavior? This particular slave is on the other side of a firewall and I can only reach it by SSH.
Jenkins provides a very simple out of the box way of checking out code in pipeline. checkout scm . It will simply checkout code's version which triggered the run. However in case you want more control then you need to customise the checkout process.
1. The checkout step will checkout code from source control; scm is a special variable which instructs the checkout step to clone the specific revision which triggered this Pipeline run.
You can skip stages in declarative pipelines using when , so the following should work. stages { stage('Deploy') { when { equals expected: true, actual: Deploy } steps { // ... } } }
You can use the skipDefaultCheckout() in the options block. This will disable the checkout of the SCM on any node in any stage, so you will have to do a checkout scm
step in the other stages manually.
pipeline {
agent any
options { skipDefaultCheckout() }
stages{
stage('first stage') {
steps {
checkout scm
}
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With