Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

Jenkins polling is too slow, can RTC notify Jenkins immediately?

 I'm using Jenkins LTS + the new Team Center plugin.

The shortest you can set polling to is 5 minutes before Jenkins complains. You can actually set it to once a minute, but that is too slow for fast-feedback.  Builds should start the instant they are delivered.

How can I get RTC to notify Jenkins of changes the instant they happen?

0 votes


Accepted answer

Permanent link
Here is a work item capturing this requirement that you can subscribe to, HPI: Trigger Jenkins build on SCM changes (rather than polling) (246734).
Christian Höltje selected this answer as the correct answer

1 vote


8 other answers

Permanent link
RTC and Jenkins are loosely coupled, with polling as the integration technique. There is no live triggering available in the current released products.  

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.

0 votes

Comments

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


You may have more builds than build servers, but we don't.  Our many jobs build fast and we rarely have any builds queued in Jenkins.  The delay waiting for a build to kick off to verify a changeset is too long.

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. 


~Spencer

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

correct, you CAN develop and support your own mechanism.


Permanent link
 I see this has been asked before (I didn't find it because I didn't search for "hooks"): https://jazz.net/forum/questions/76612/post-commit-hook-in-rtc

Greg Pflaum's answer looks like it might work, but I'll have to figure out how to write the Java (I'm not a Java expert).

0 votes


Permanent link
has anyone completed this?

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


0 votes


Permanent link
so I think a generic RTC deliver hook could get this data

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

0 votes

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


Permanent link
Hello Christian,
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.

0 votes


Permanent link
my DeliverHook plugin is available here
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.

0 votes


Permanent link
Going back awhile here but wondering if there are updated links for the two scripts mentioned in this thread.. I am trying to find a way to add automation to Jenkins builds via RTC (4.0.5 but about to upgrade to 6.0.1). 

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!

0 votes

Comments

I just checked mine (Deliverhook) and it (the download) works correctly

correct.. the product does not include automatic job invocation (still)


Permanent link
Disregard - it looks like (unfortunately) both link are blocked in my office, so i'll try from home later.  :)

0 votes

Your answer

Register or log in to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 6,121
× 1,202
× 562
× 151

Question asked: Nov 01 '13, 5:17 p.m.

Question was seen: 10,719 times

Last updated: Mar 10 '16, 11:41 a.m.

Confirmation Cancel Confirm