Continuous Integration Builds
6 answers
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...
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
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
:)
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
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
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
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
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)
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)