The following polling build filter will fail to exclude files submitted to 'Folder' from polling because there is leading whitespace before the filter path:
filter: [viewFilter('''//depot
-//depot/Folder1/ignorme.txt
-//depot/Folder1''')],
The paths on the second and third line have to be flush with the start of the line. For example:
filter: [viewFilter('''//depot
-//depot/Folder1/ignorme.txt
-//depot/Folder1''')],
Reproduction Steps:
1 - Create a Perforce server with a depot called depot.
2 - Create a credential called JenkinsMaster.
3 - Create the following pipeline job:
pipeline {
agent any
options { skipDefaultCheckout() }
stages {
stage("Test") {
steps {
script {
echo "In script."
checkout perforce(credential: 'JenkinsMaster',
filter: [viewFilter('''//depot
-//depot/Folder1/ignorme.txt
-//depot/Folder1''')],
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', cleanup: false, name: 'jenkins-${NODE_NAME}-${JOB_NAME}-${EXECUTOR_NUMBER}', pinHost: false, spec: clientSpec(allwrite: false, backup: true, changeView: '', clobber: true, compress: false, line: 'LOCAL', locked: false, modtime: false, rmdir: false, serverID: '', streamAtChange: '', streamName: '', type: 'WRITABLE', view: '//depot/... //${P4_CLIENT}/...')))
echo "A fake build step."
}
}
}
}
}
4 - Build the job once.
5 - Add the Poll Now plugin to Jenkins.
6 - Click Poll Now - No job is started.
7 - Add and submit the file "//depot/Folder1/x1".
8 - Click Poll Now - Job is started.
9 - Edit the job to take out the whitepace from the viewFilter:
pipeline {
agent any
options { skipDefaultCheckout() }
stages {
stage("Test") {
steps {
script {
echo "In script."
checkout perforce(credential: 'JenkinsMaster',
filter: [viewFilter('''//depot
-//depot/Folder1/ignorme.txt
-//depot/Folder1''')],
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', cleanup: false, name: 'jenkins-${NODE_NAME}-${JOB_NAME}-${EXECUTOR_NUMBER}', pinHost: false, spec: clientSpec(allwrite: false, backup: true, changeView: '', clobber: true, compress: false, line: 'LOCAL', locked: false, modtime: false, rmdir: false, serverID: '', streamAtChange: '', streamName: '', type: 'WRITABLE', view: '//depot/... //${P4_CLIENT}/...')))
echo "A fake build step."
}
}
}
}
}
10 - Build the job once.
11 - Click Poll Now - No job is started.
12 - Add and submit the file "//depot/Folder1/x2".
13 - Click Poll Now - Job is not started proving the whitespace was the cause of the incorrect build.
Note - If this is not fixed it should be documented.