Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-44511

Multibranch plugin with declarative pipelines checks out the project for skipped stages

XMLWordPrintable

      I would like to execute 2 stages on 2 different nodes. First stage should be executed always, and the second under a certain condition.

      Everything works, except that when the second stage is not executed (the 'when' expression is not satisfied), a checkout of the repository is still done. 

      This is the Jenkinsfile:

      pipeline {
        agent { label 'node_1' }
      
        stages {
          stage("Stage 1") {
            steps {
              script {
                echo "Stage 1"
              }
            }
          }
      
          stage ('Stage 2') {
            when {
              expression { env.BRANCH_NAME == "master" }
            }
            agent { label 'node_2' }
            steps {
              script {
               echo "Stage 2"
             }
           }
         }
        }
      }

      The big problem with this is that in case the 'node_2' is executing other jobs, the current job cannot continue until this node has a free executor. 

       

            abayer Andrew Bayer
            suomiro Lucian Varlan
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: