Feature request: Implement poll per change on multibranch pipeline jobs.
With multibranch poll per change doesnt poll every change but does build only the next change that needs to be built.For example:
(1) Add CL 626, 627 and 628.
(2) The multi branch top level poll is configured for 1 min (see below). When it triggers it detects that 625 to 628 exist.
(3) The job checks SyncID and correctly finds '625' as the previous last sync.  Â
Found last change 625 on syncID jenkins-NODE_NAME-MultiBranch_PollPerChange-main-EXECUTOR_NUMBER
(4) Due to filtering only the next changelist is synced:
         P4 Task: syncing files at change: 626
(5) Jenkins records the last successful build for this branch correctly:
         branches/main/lastSuccessful/build.xml:         <change>626</change>
(6) But (and I'm guessing this is the cause) sets '628' in the following file:
         branches/main/scm-revision-hash.xml
The next time a poll runs it will only fire if a new changelist has been created but will build changelist '627' only (so will now be building 2 changelists behind current).
Â
My Jenkinsfile:
    1   pipeline {
    2    agent { label 'master' }
    3    options { skipDefaultCheckout() }
    4    stages {
    5      stage("Repro") {
    6        steps {
    7          script {
    8             checkout perforce(credential: 'MasterServer', filter: [incremental(true)], populate: autoClean(delete: true, modtime: false, parallel: [enable: false, minbytes: '1024', minfiles: '1', threads: '4'], pin: '', quiet: true, replace: true, tidy: false), workspace: manualSpec(charset: 'none', name: 'jenkins-${NODE_NAME}-${JOB_NAME}-${EXECUTOR_NUMBER}', pinHost: false, spec: clientSpec(allwrite: false, backup: false, clobber: true, compress: false, line: 'LOCAL', locked: false, modtime: false, rmdir: false, serverID: '', streamName: '', type: 'WRITABLE', view: '//depot/multibranch_poll_per_change/main/... //jenkins-${NODE_NAME}-${JOB_NAME}-${EXECUTOR_NUMBER}/...')))
    9             sh "pwd"
   10             sh "ls -l"
   11        sh "cat -n *"
   12        sh "echo ${env.BRANCH_NAME}"
   13          }
   14        }
   15      }
   16    }
   17   }
Â
Â
- is related to
-
JENKINS-51525 Pipeline: Poll per change syncs to head when using 'checkout' or 'p4 sync' step.
-
- Closed
-
- relates to
-
JENKINS-47427 Poll per change with pipeline jobs
-
- Closed
-
-
JENKINS-51525 Pipeline: Poll per change syncs to head when using 'checkout' or 'p4 sync' step.
-
- Closed
-