Continuous Integration Builds
![]() Can the RTC build engine determine if a new delivery has been accepted into a stream and automatically start a build based on this change (continuous integration). This would be akin to how Build Forge (Adaptors) or Cruise Control would work. Thanks Sally :) |
6 answers
![]()
I used the workspace where I made the syncrnoized stream. Even when I used the template I still got the error below. However , I fixed it by creating a dedicated workspace for my regression builds that is different from the syncronized workspace.
Thank you. Log: 2008-08-05 21:07:47 Should build occur? 2008-08-05 21:07:47 Yes: Always build a user initiated request. 2008-08-05 21:07:47 Invoking pre-build participant "com.ibm.team.build.jazzscm" Accepting changes into workspace "e2autobd_jazz_int_e2_src_only_3" ... com.ibm.team.repository.common.TeamRepositoryException: Component E2_base_comp is accepting changes from multiple flow targets at com.ibm.team.build.internal.scm.SourceControlUtility.acceptAllIncoming(SourceControlUtility.java:602) at com.ibm.team.build.internal.scm.SourceControlUtility.acceptAllIncoming(SourceControlUtility.java:496) at com.ibm.team.build.internal.engine.JazzScmPreBuildParticipant.performAccept(JazzScmPreBuildParticipant.java:219) at com.ibm.team.build.internal.engine.JazzScmPreBuildParticipant.preBuild(JazzScmPreBuildParticipant.java:126) at com.ibm.team.build.internal.engine.BuildLoop.invokePreBuildParticipants(BuildLoop.java:570) at com.ibm.team.build.internal.engine.BuildLoop$2.run(BuildLoop.java:426) at java.lang.Thread.run(Thread.java:595) |
![]()
How did you create the build definition? If you are using the jazz build
engine and you used the "Ant - Jazz Build Engine" template, then it has built in support for accepting the latest changes. You do not need the teamAccept task in this case. The jazz build engine does it for you. See the Jazz Source Control tab in the build definition editor. There, you would specify your build workspace. Then, just make sure your build workspace has flow targets setup with the integration stream you want to accept from. All changes will be accepted during the build. If you are not using the jazz build engine, then the teamAccept task is necessary. But the workspace needs the same flow target setup. You can embed the teamAccept task in your existing ant script or make a new ant script. That's a detail of your build and up to you. Regarding the error you got... If you look at all the flow targets coming into your build workspace, and look at the components within, do any of the components collide? Such as Component E2_base_comp ? You cannot flow from muiltiple streams with the same components unless you "scope" the flows so that each component is coming from at most one stream. Otherwise the files will collide. This is not allowed. To do that, open your build workspace in the workspace editor. In the Flow Targets section, select the flow target and edit it. Choose "Flow only components checked below" and then select components so there are no overlaps between flows. --- Ryan Manwiller Jazz Team |
![]()
The story continues, assuming what I wrote earlier is the only choice, I wrote an ant script that will do teamAccept before running my build.
I got this log, any ideas: 2008-08-05 17:58:38 Should build occur? 2008-08-05 17:58:38 Yes: Always build a user initiated request. 2008-08-05 17:58:39 Invoking build participant "com.ibm.team.build.ant" Buildfile: F:\home\e2autobd\workspace\projects\sunjdk\buildInt.xml checkEnv: Sync: com.ibm.team.repository.common.TeamRepositoryException: Component E2_base_comp is accepting changes from multiple flow targets at com.ibm.team.build.internal.scm.SourceControlUtility.acceptAllIncoming(SourceControlUtility.java:602) at com.ibm.team.build.internal.scm.SourceControlUtility.acceptAllIncoming(SourceControlUtility.java:496) at com.ibm.team.build.ant.task.TeamAcceptTask.doExecute(TeamAcceptTask.java:144) at com.ibm.team.build.ant.task.AbstractTeamBuildTask.execute(AbstractTeamBuildTask.java:419) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329) at org.apache.tools.ant.Project.executeTarget(Project.java:1298) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1181) at org.apache.tools.ant.Main.runBuild(Main.java:698) at org.apache.tools.ant.Main.startAnt(Main.java:199) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104) BUILD FAILED F:\home\e2autobd\workspace\projects\sunjdk\buildInt.xml:23: com.ibm.team.repository.common.TeamRepositoryException: Component E2_base_comp is accepting changes from multiple flow targets Total time: 18 seconds Build failed. Exit value was 1. 2008-08-05 17:58:59 Invoking post-build participant "com.ibm.team.build.junit.publishing" Published directory of JUnit log files: F:\home\e2autobd\workspace\projects\sunjdk\test-output |
![]()
Let me be more specific: I found the teamAccept ant task. I think that this allows me to accept changes. The question is do I have to write another Ant script to use this task and call my original ant , or is there a built-in way to do it?
|
![]()
I defined an integration build with my own ant script in a dedicated workspace and user. How do I automatically sync-up with the integration stream and accept all changes , so I would run the build on the latest code?
|
![]()
There is similar functionality. You can set it up so that periodically a
build is attempted and if changes have been accepted in the workspace the build is executed otherwise it's skipped. The smallest interval that this can occur at is every minute. This article should help describe the setup process for doing that. https://jazz.net/learn/LearnItem.jsp?href=content/docs/client-tour/using-build.html Don Weinand Jazz Team Build "sallyanne" <sallyanne> wrote in message news:g76ljh$npq$1@localhost.localdomain... Builds |