It's all about the answers!

Ask a question

Automation of dependency build


Morten Madsen (3032241) | asked May 28 '15, 5:38 a.m.
edited Jun 06 '15, 12:39 a.m. by Geoffrey Clemm (29.3k23035)
Hi all,

I've been working on some automation scripts (ANT scripts with custom ant tasks) for and IBMi dependency build that will do the following:

1. Find incoming changes
2. Check the connected work items and their status.
3. Accept changes based on the wanted work item status.
4. set work items in "build in progress" status
5. execute the dependency build, package and deploy
6. set work items in "deployed to dev system" or "build failed"
7. deliver changes to target stream

I'm doing the build between two stream, so I have

"Source stream" ----> <build> ------> "target stream"

This could be

"Development stream" -----> <build> ------> "Development environment stream"

This ANT script will then "set up" the workspace for the dependency build to start. But I have some issues with this.

a. The dependency builds seems to have "accept incoming changes" as mandatory. I cannot disable it. This will ruin my work item filtering.

b. The dependency build will do "source code scanning" on the current flow target. Will it ruin the build, if I put the flow target to the "target stream"? I mean, will it then do scanning on the source code without my new changes? Why doesn't it do scanning on it's build workspace with the new changes?

I you have any comments please pitch in.

Thanks,
Morten.

Comments
Morten Madsen commented May 30 '15, 10:41 a.m.

Anybody have any comments?

I'm thinking, the only way to do the above would be to have a "filtering mechanism" which would deliver work item changes to a temporary stream, that the build would use as flow target (fetch it's changes from).

Basically, it would solve my problems, if I could get rid of the "automatically accept incoming changes before build". I want to manually set the workspace up before the build... any ideas anyone?

Accepted answer


permanent link
alfonso rodriguez (121) | answered Jun 03 '15, 10:44 a.m.
JAZZ DEVELOPER
Hi Morten,

One way to control the scope of a dependency build is through the use of subsets.  Would this help?

Here is the subset information in the current product documentation:
https://jazz.net/help-dev/clm/topic/com.ibm.team.build.doc/topics/t_ee_buildsubset_overview.html

An API, added in 5.0, allows programmatic creation of a build subset:
https://jazz.net/jazz/web/projects/Rational%20Team%20Concert#action=com.ibm.team.workitem.viewWorkItem&id=258710
Morten Madsen selected this answer as the correct answer

2 other answers



permanent link
Hung Lam (2911914) | answered Jun 03 '15, 8:44 a.m.
JAZZ DEVELOPER
 Hi Morten,
Dependency Build needs to accept all changes from the stream to the build workspace to avoid gap/conflict and calculate files need to be rebuilt.

Perhaps what you want is to automatically create subset based on your work items and use that subset in the build so that your build only scopes to the files in the subset.

permanent link
Morten Madsen (3032241) | answered Jun 09 '15, 3:36 a.m.
Hi both, thanks for your answers. I'll look into the subsets and see how easy they are to use.

Temporarily I've decided to go for an intermediate stream, which will (at each new build) rolled back to last successful build snapshot (together with the build workspace). A filtering mechanism will then scan for new changes and for the associated work items and deliver these changes to the intermediate stream, before the dependency build is executed. It seems to work.... for now.

Your answer


Register or to post your answer.