[jenkins] Jenkins - Configure Jenkins to poll changes in SCM

I am working with jenkins and I would like to run the maven goals when there is a change in the svn repository. I've attached a picture with my current configuration.

I know that checking the repository every 5 min is crazy. I would like to run it only when there is a new change, but I could not find the way. Anyway, it is not checking the repository. What am I doing wrong??

Thanks in advanceenter image description here

This question is related to jenkins

The answer is


I believe best practice these days is H/5 * * * *, which means every 5 minutes with a hashing factor to avoid all jobs starting at EXACTLY the same time.


That's an old question, I know. But, according to me, it is missing proper answer.

The actual / optimal workflow here would be to incorporate SVN's post-commit hook so it triggers Jenkins job after the actual commit is issued only, not in any other case. This way you avoid unneeded polls on your SCM system.

You may find the following links interesting:

In case of my setup in the corp's SVN server, I utilize the following (censored) script as a post-commit hook on the subversion server side:

#!/bin/sh

# POST-COMMIT HOOK

REPOS="$1"
REV="$2"
#TXN_NAME="$3"
LOGFILE=/var/log/xxx/svn/xxx.post-commit.log

MSG=$(svnlook pg --revprop $REPOS svn:log -r$REV)
JENK="http://jenkins.xxx.com:8080/job/xxx/job/xxx/buildWithParameters?token=xxx&username=xxx&cause=xxx+r$REV"
JENKtest="http://jenkins.xxx.com:8080/view/all/job/xxx/job/xxxx/buildWithParameters?token=xxx&username=xxx&cause=xxx+r$REV"

echo post-commit $* >> $LOGFILE 2>&1

# trigger Jenkins job - xxx
svnlook changed $REPOS -r $REV | cut -d' ' -f4 | grep -qP "branches/xxx/xxx/Source"
if test 0 -eq $? ; then
        echo $(date) - $REPOS - $REV: >> $LOGFILE
        svnlook changed $REPOS -r $REV | cut -d' ' -f4 | grep -P "branches/xxx/xxx/Source" >> $LOGFILE 2>&1
        echo logmsg: $MSG >> $LOGFILE 2>&1
        echo curl -qs $JENK >> $LOGFILE 2>&1
        curl -qs $JENK >> $LOGFILE 2>&1
        echo -------- >> $LOGFILE
fi

# trigger Jenkins job - xxxx
svnlook changed $REPOS -r $REV | cut -d' ' -f4 | grep -qP "branches/xxx_TEST"
if test 0 -eq $? ; then
        echo $(date) - $REPOS - $REV: >> $LOGFILE
        svnlook changed $REPOS -r $REV | cut -d' ' -f4 | grep -P "branches/xxx_TEST" >> $LOGFILE 2>&1
        echo logmsg: $MSG >> $LOGFILE 2>&1
        echo curl -qs $JENKtest >> $LOGFILE 2>&1
        curl -qs $JENKtest >> $LOGFILE 2>&1
        echo -------- >> $LOGFILE
fi

exit 0

Questions with jenkins tag:

Maven dependencies are failing with a 501 error Jenkins pipeline how to change to another folder Docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock groovy.lang.MissingPropertyException: No such property: jenkins for class: groovy.lang.Binding How to solve npm install throwing fsevents warning on non-MAC OS? Run bash command on jenkins pipeline Try-catch block in Jenkins pipeline script How to print a Groovy variable in Jenkins? Jenkins pipeline if else not working Error "The input device is not a TTY" How to set and reference a variable in a Jenkinsfile Get git branch name in Jenkins Pipeline/Jenkinsfile Jenkins: Can comments be added to a Jenkinsfile? How to define and use function inside Jenkins Pipeline config? Environment variable in Jenkins Pipeline Rebuild Docker container on file changes How to use the curl command in PowerShell? Jenkins: Cannot define variable in pipeline stage Jenkins fails when running "service start jenkins" How to reset the use/password of jenkins on windows? How can I remove jenkins completely from linux Check if a file exists in jenkins pipeline Checkout Jenkins Pipeline Git SCM with credentials? Jenkins CI Pipeline Scripts not permitted to use method groovy.lang.GroovyObject How to retrieve current workspace using Jenkins Pipeline Groovy script? Conditional step/stage in Jenkins pipeline Jenkins Pipeline Wipe Out Workspace Jenkins "Console Output" log location in filesystem how to setup ssh keys for jenkins to publish via ssh How to list all `env` properties within jenkins pipeline job? How to pass boolean parameter value in pipeline to downstream jobs? Get absolute path to workspace directory in Jenkins Pipeline plugin Running stages in parallel with Jenkins workflow / pipeline Is it possible to capture the stdout from the sh DSL command in the pipeline How can I test a change made to Jenkinsfile locally? How can I trigger another job from a jenkins pipeline (jenkinsfile) with GitHub Org Plugin? How to change workspace and build record Root Directory on Jenkins? Jenkins vs Travis-CI. Which one would you use for a Open Source project? Jenkins - how to build a specific branch Run a command shell in jenkins How to change the JDK for a Jenkins job? Jenkins: Is there any way to cleanup Jenkins workspace? How to access parameters in a Parameterized Build? Is it ok to run docker from inside docker? Where can I find jenkins restful api reference? How to get build time stamp from Jenkins build variables? How do I clone a job in Jenkins? How to change port for jenkins window service when 8080 is being used Reading file from Workspace in Jenkins with Groovy script How/When does Execute Shell mark a build as failure in Jenkins?