Welcome to the Jazz Community Forum
Jenkins polling is too slow, can RTC notify Jenkins immediately?

Accepted answer

8 other answers

We always had more builds than build servers, so there was always a queue of builds to work on. sometimes the current build would be seconds, sometimes it would be an hour.
Comments

All I need is a way for Jazz SCM to run a script, or something when a change comes in.

understood.. the current RTC code does not trigger immediately.

You could script the checkin/deliver and the build start together using the Jazz SCM CLI and the RTC build Ant tasks.

Does that mean "cannot" or that nobody has figured out how yet?

correct, you CAN develop and support your own mechanism.


if the plugin launches a script (like the git/svn post-receive/commit hooks..)
would need to configure WHERE the script lives.. as you probably don't want it in the web server directory tree..
there are a couple REST methods for invoking Jenkins jobs.. with and without extra parameters.
from the no parameters way http://kohsuke.org/2011/12/01/polling-must-die-triggering-jenkins-builds-from-a-git-hook/
with parmeters way https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build

repo_url
project name
stream name
component name
changeset UUID
action string = either 'Baseline' or 'Changset'
the configuration would provide 1 xml line to the process xml for this participant
<DeliverHook script_name="full path to hook script" />
the hook will run under the OS default shell..
on *ix systems this can be specified on line 1 of the script. with
#!/bin/bash or #!/bin/perl or whatever
in windows this would be cmd.exe
Edit: I have this working.. anyone wants to try it send email to my gmail sdetweil
Comments

How do you handle the case, where you deliver multiple changesets in one deliver operation? Is the action string parameter then a list of changeset UUID's.

the current code calls the hook script for each changeset or baseline,
similar to what happens with git or svn calling the post-receive/post-commit for each revision

In case you are still looking for an alternative, there is a non-official solution implemented by Jorge Diaz in the link below:
http://jorgediazblog.wordpress.com/2013/01/24/rtc-build-on-deliver-participant/
It works like a charm right out of the box. Simply add this plugin to the RTC server, and configure the triggers using the XML template Jorge provided in there. Whenever a new delivery is made, the chosen build definitions will be immediately triggered.
Jorge mentions that "the code is experimental", but I haven't found any undesired side-effect so far...
Hope it helps!
Edit (10.03.2016):
This plugin works like a charm to trigger the builds, but any queued builds will always build the latest state of the Repository Workspace when they come to the Jenkins executor! That means, only use this feature if your environment has no queues at all! Check my comment at the end of the post.

https://www.dropbox.com/s/wus9574yoj705pl/DeliverHook.zip?dl=0
see the contents for the xml config, and the sample scripts,
windows, linux and perl.
this supports triggering the jenkins job, where the one Rafael mentions triggers the Build Definition
same thing, just different sides of the same process.
this triggering process is functionally identical to the SVN and GIT receive and post_receive hooks.
the scripts link to the jenkins info
this is all developed on my personal time and equipment.

I presume RTC still does not include this functionality in more recent versions so thought i'd check if the scripts mentioned here were still available.
thanks!