Jenkins polling is too slow, can RTC notify Jenkins immediately?
Christian Höltje (5●8●10)
| asked Nov 01 '13, 5:17 p.m.
retagged Nov 04 '13, 11:18 a.m. by Scott Cowan (966●3●10)
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?
|
Accepted answer
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
|
8 other answers
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. Comments
Christian Höltje
commented Nov 02 '13, 4:54 p.m.
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.
sam detweiler
commented Nov 02 '13, 5:23 p.m.
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
Christian Höltje
commented Nov 04 '13, 9:49 a.m.
Does that mean "cannot" or that nobody has figured out how yet?
sam detweiler
commented Nov 04 '13, 9:49 a.m.
correct, you CAN develop and support your own mechanism.
|
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).
|
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 |
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 Comments
Martin Dam Pedersen
commented Oct 30 '14, 9:47 a.m.
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.
sam detweiler
commented Oct 30 '14, 10:09 a.m.
the current code calls the hook script for each changeset or baseline,
|
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. |
Disregard - it looks like (unfortunately) both link are blocked in my office, so i'll try from home later. :)
|
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.