Hi,
I'm currently writing what I think will be a set of plugins so that
Hudson can be used as a Build Engine for IBM's Rational Team Concert
(aka "Jazz") server. I've started with an SCM plugin as this is where
most of the meat will be and am working my way through the
pollChanges( ) checkout( ) and createChangeLogParser( ) methods.
However, there is lot more I need to do to integrate things in a
meaningful way and get the most out of both Jazz and Hudson. To do
this I need get to the bottom of a few things and hope someone can
help.
My first question is around the standard Hudson build steps. I've had
a look on the wiki and searched the mailing list archives and can't
find a simple description / diagra, of the steps a build goes through.
I'm hoping to understand this so I can integrate Jazz with Hudson as
closely as possible.
This then leads onto my second question. Jazz has the concepts of a
Build Request queue. Builds can be requested by a developer (a
"personal build" which means their code is built on the build server)
or schdeuled (as defined in a Build Definition on the Jazz server).
Both are logged and tracked on the Jazz Build Request Queue for a
given Build Definition. Build engines (such as Hudson) then poll this
queue (my impression is that this will be via the Hudson pollChanges(
) method) and, if a request is found proceed as follows:
1. inform the Jazz server the requested build is starting - this
updates the build request in question so its status moves from
"Pending" to "Started"
2. set the build label (in Jazz and also stored for later use in the
build - i.e. for labelling results, tagging the SCM, etc.)
3. inform the Jazz server the "fetch" activity is starting - again
this updates the build request status
4. "accept" any incoming changes into the Build users workspace (on
the Jazz server - this is not a checkout. Yet)
5. perform tidy up tasks such as deleting the local workspace if required
6. fetch (checkout) the latest code from the Jazz server to the build
server workspace
7. inform the server the "fetch" activity is complete - again this
updates the build request status
8. inform the Jazz server the "compile" activity is starting - again
this updates the build request status
9. compile the project(s)
10. inform the server the "compile" activity is complete - again this
updates the build request status
11. inform the Jazz server the "test" activity is starting - again
this updates the build request status
12. test the project(s)
13. inform the server the "test" activity is complete - again this
updates the build request status
14. publish any links (e.g. the Hudson build result URL) to the build
result on the Jazz server
15. inform the Jazz server the requested build is completeed - again
this updates the build request status
I want to be able to keep the staus for each build as up to date as
possible in this Jazz build request queue. Partially because it is how
Jazz works but also because it is such a good feedback mechanism for
developers. I've had a look at the various extension points available
in Hudson but I'm not sure which I should use. I guess that this
extension should be quite simple, but I'm hoping someone can tell me
where to start.
I hope this isn't too much detail and that someone can help. If you
need more information on how the Jazz server works or anything else I
may have forgotten or not made clear please drop me a line.
I hope this all makes sense.
Thanks in advance.
Cheers, Andrew
---------------------------------------------------------------------
To unsubscribe, e-mail:
[hidden email]
For additional commands, e-mail:
[hidden email]