Pull request with a conflict and SCM poll properties runs in an infinite loop

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      It appears that a Multibranch Pipeline, with a Pull Request with a conflict in the source code (related to JENKINS-48581), will result in an infinite loop errors because of the conflict.

      Best I can tell is that because this Pipeline is using an SCM Poll, whenever it polls in the Pull Request, it sees an exception and fails to complete the polling operation, which results in the Pipeline executing and failing every 15 minutes.

      #!/usr/bin/env groovy
      
      def imageName = 'jenkinsciinfra/account-app'
      
      properties([
          buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: '5')),
          pipelineTriggers([[$class:"SCMTrigger", scmpoll_spec:"H/15 * * * *"]]),
      ])
      
      node('docker') {
          stage('Build') {
              timestamps {
                  checkout scm
                  docker.image('openjdk:8-jdk').inside {
                      sh './gradlew --no-daemon --info war'
                      archiveArtifacts artifacts: 'build/libs/*.war', fingerprint: true
                  }
              }
          }
      
          def container
          stage('Prepare Container') {
              timestamps {
                  sh 'git rev-parse HEAD > GIT_COMMIT'
                  shortCommit = readFile('GIT_COMMIT').take(6)
                  def imageTag = "${env.BUILD_ID}-build${shortCommit}"
                  echo "Creating the container ${imageName}:${imageTag}"
                  container = docker.build("${imageName}:${imageTag}")
              }
          }
      
          stage('Validate') {
              timestamps {
                  sh 'make check'
              }
          }
      
          /* Assuming we're not inside of a pull request or multibranch pipeline */
          if (!(env.CHANGE_ID || env.BRANCH_NAME)) {
              stage('Publish container') {
                  infra.withDockerCredentials {
                      timestamps { container.push() }
                  }
              }
          }
      }
      

            Assignee:
            Unassigned
            Reporter:
            R. Tyler Croy
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Archived: