It's all about the answers!

Ask a question

Chaining up Builds


Thomassian Guillaume (411) | asked May 10 '10, 9:30 a.m.
How can I chain up actions in order to get successive builds, like we can have with TeamCity or Hudson ?

Here's the process i'd like to execute
1-Continuous build (i already have this build working)
2-on build success, copy sources on a remote filesystem
3-on copy success, call a remote batch by url invocation

Any help would be appreciated !

17 answers



permanent link
Nick Edgar (6.5k711) | answered May 19 '10, 10:57 a.m.
JAZZ DEVELOPER
No, I wasn't aware of that one. I do know that Rational Software Analyzer integrates with RTC though for showing results in the build editor, process preconditions for ensuring checks are green before delivering changes, etc.

http://www-01.ibm.com/software/awdtools/swanalyzer/developer/index.html

permanent link
Thomassian Guillaume (411) | answered May 19 '10, 10:43 a.m.
Excellent! Good to hear. Mind if I ask what you're using for code QA?


Well, we're prototyping a solution based on Compuware's CAQS portal... Do you know this product ?

permanent link
Nick Edgar (6.5k711) | answered May 19 '10, 10:41 a.m.
JAZZ DEVELOPER
Another way to structure things for loading from ClearCase is to add the sync workspace as a target of the build workspace. That way, changes from the sync workspace will be accepted into the build workspace, and will be included in the build snapshot. Also, JBE will take care of the load then, and you won't need to use teamFetch in the script.

permanent link
Nick Edgar (6.5k711) | answered May 19 '10, 10:39 a.m.
JAZZ DEVELOPER
Excellent! Good to hear. Mind if I ask what you're using for code QA?

permanent link
Thomassian Guillaume (411) | answered May 19 '10, 3:44 a.m.

For the ClearCase Connector issue, you can load the contents of an arbitrary workspace using the teamFetch task. e.g.
<teamFetch>


Thanks a lot, i can do exactly what i was looking for !
=>Clearcase Synchronisation
=>Source Extraction
=>Project code quality Analysis

permanent link
Nick Edgar (6.5k711) | answered May 18 '10, 11:01 a.m.
JAZZ DEVELOPER
> Seems to me the problem was the 'requestUUIDProperty' parameter name (i chose 'requestUUID' first).

Ah, silly me for not noticing this. JBE sets the requestUUID property (for the original build), and Ant allows a property to be set at most once. So basically it was blocked waiting for itself.
It may have been possible to discover this by adding -verbose as a command line arg to Ant.

For the ClearCase Connector issue, you can load the contents of an arbitrary workspace using the teamFetch task. e.g.
<teamFetch workspaceName="CLONE_workspace" destination="c:\fetched" repositoryAddress="${repositoryAddress}" userId="${userId}" passwordFile="${passwordFile}"/>

Regards,
Nick

permanent link
Thomassian Guillaume (411) | answered May 18 '10, 10:38 a.m.
OK, it works now ! Thanks a lot !

Seems to me the problem was the 'requestUUIDProperty' parameter name (i chose 'requestUUID' first).

With requestUUIDProperty="MyRequestUUID"
it works !

Now, i have another difficulty with ClearcaseConnector.

I want to copy the source sfrom Clearcase to RTC with the CConnector, and then have different generations executed on the sources coming from clearcase (without merging enything from RTC repository).

The idea is to get the sources from the 'CLONE_workspace', but i don't know how to extract the sources from this workspace, to a local directory, through a specific generation.

Can someone help ?

Regards,

Guillaume

permanent link
Nick Edgar (6.5k711) | answered May 17 '10, 1:48 p.m.
JAZZ DEVELOPER
It might be easier to specify _mediaType=text/xml instead of text/json, to get the result in-browser instead of in a text editor.

permanent link
Nick Edgar (6.5k711) | answered May 17 '10, 1:46 p.m.
JAZZ DEVELOPER
The logic in the waitForTeamBuild task is really simple. It basically just does:
- fetch the build result (with refresh flag, to ignore any cached item)
- check if it's in one of the desired states
- if not, sleep for a bit and repeat, unless timed out

What is the network topology between the server and the build machines running JBE? Is there any difference if you run JBE on the same machine as the server? Is it possible there's some kind of caching proxy between the two (even if there were, it shouldn't be caching these kinds of requests, but you never know).

Which JDK are you using to run JBE (try java -version from the JBE directory)? If not already, can you try with the one included in the RTC client? For more context, see https://jazz.net/wiki/bin/view/Main/BuildFAQ#WhichJDK .

You could also try looking at the internal representations for the request and result (from the build machine).

- take the request UUID printed out by your <echo> statement
- in a browser, fetch the following, using the request UUID:
https://{your repository including /jazz suffix}/resource/itemOid/com.ibm.team.build.BuildRequest/_Mjt3IWGaEd-0PatKv_pDNA?_mediaType=text/json&_prettyPrint=true
- look through it for the result handle, e.g.:
"buildResult": {
"com.ibm.team.repository.typeName": "com.ibm.team.build.BuildResult",
"itemId": "_lSlEsF_FEd-WX8dOKD-Ydg",
"uri": "itemOid\/com.ibm.team.build.BuildResult\/_lSlEsF_FEd-WX8dOKD-Ydg"
},
- fetch the result, replacing the result item id (not the request item id) in:
https://{your repo}/resource/itemOid/com.ibm.team.build.BuildResult/_lSlEsF_FEd-WX8dOKD-Ydg?_mediaType=text/json&_prettyPrint=true
- look for the buildState, e.g.:
"buildState": "COMPLETED",

If you want to track the state of the child build as it proceeds, you only need to refresh the result url.

permanent link
Thomassian Guillaume (411) | answered May 17 '10, 11:57 a.m.
Thanks for your answers !

>Can you clarify, though: does the actual synchronizer build actually finish? That is, is the problem that the nested build actually hangs, or that waitForTeamBuild is not seeing it finish properly?

yes, waitForTeamBuild is not seeing it finish properly.

Your answer


Register or 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.