I have the following setup active and working:
project
) which polls Git each minuteproject-sonar
) which polls git each 24 hoursBoth jobs share the same git repository.
This allows me to build my project for each commit and then each day, only if the project has changed, run the Sonar analysis.
I've recently set up the git repository to send notifications to Jenkins when a project has changed, as per Push notifications from repository . This builds both projects immediately, but I want only the quick ( project
) job to build. If I move the project-sonar
to be built periodically, the sonar analysis will be run even if there are no code changes, which is wasteful.
How can I retain
project
buildproject-sonar
build?
I implemented something very much like what you're looking at using the "Run Condition" plugin to jenkins. https://wiki.jenkins-ci.org/display/JENKINS/Run+Condition+Plugin
I made the sonar job a follow-on to the polling/build/test job, with conditions so it only runs once a day.
I've solved this using the following approach:
I have added a post-receive
hook in gitolite which does something like
$CURL --silent --netrc --insecure --connect-timeout 2 "$GIT_REMOTE_TRIGGER_URL/$GL_REPO/build?token=$JENKINS_BUILD_TOKEN" > /dev/null
Scheduled all sonar jobs to poll the SCM every 24 hours
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With