RTC 3.0 and BF 7.1.2: BUILD phase error
I need help setting up an integration between Build Forge and RTC. I am running into an error: "Example build" does not include a configuration element for the BUILD phase. The Jazz build engine does not support a generic build definition with no builder." Below is how I can reproduce this error:
I have set up a basic "Example Project" project in Build Forge which I can confirm runs correctly. I created a user "build" in Build Forge and gave it full permissions and confirmed it could kick of the project.
I then created a user "build" in RTC and made sure it had a build system license and was a JazzUsers. I added the build user to the RTC project (scrum process) as a team member. I created a engine "BF" in RTC and entered in the "build" user information and confirmed it could successfully talk to Build Forge:
Next, I created an "Example Build" build definition using the Build Forge template. I set the supported build engine to "BF", selected my "Example Project", selected a workspace which was owned by user "build", and set the load directory to /RTC/ (linux).
I created a build engine script build.sh:
The output of that script is:
This is the error I get in the build record log file after requesting a build:
Build Forge has no record of receiving the build request.
Build Forge: 7.1.2 on SLES 10.3 with DB2 9.5.3 x86
Team Concert Server: 3.0 on SLES 10.3 with DB2 9.5.3 x86
Team Concert Client: 3.0 on Ubuntu 10.04 x86
I have set up a basic "Example Project" project in Build Forge which I can confirm runs correctly. I created a user "build" in Build Forge and gave it full permissions and confirmed it could kick of the project.
I then created a user "build" in RTC and made sure it had a build system license and was a JazzUsers. I added the build user to the RTC project (scrum process) as a team member. I created a engine "BF" in RTC and entered in the "build" user information and confirmed it could successfully talk to Build Forge:
Testing, please wait...
Result: Success
Ping result: *******:3966
Login: build
User name: build
Next, I created an "Example Build" build definition using the Build Forge template. I set the supported build engine to "BF", selected my "Example Project", selected a workspace which was owned by user "build", and set the load directory to /RTC/ (linux).
I created a build engine script build.sh:
#!/bin/bash
cd /opt/IBM/TeamConcertBuild/buildsystem/buildengine/eclipse
./jbe -repository https://*********/jazz -engineId BF -userId build -pass build -sleeptime 1 &
The output of that script is:
2010-11-30 20:20:32 [Jazz build engine] Running build loop...
2010-11-30 20:20:32 [Jazz build engine] Waiting for request...
2010-11-30 20:21:06 [Jazz build engine] Found a user request for build definition "Example build".
This is the error I get in the build record log file after requesting a build:
com.ibm.team.build.common.TeamBuildException: Request for build "Example build" does not include a configuration element for the BUILD phase. The Jazz build engine does not support a generic build definition with no builder.
at com.ibm.team.build.internal.engine.BuildLoop.validateBuilder(BuildLoop.java:935)
at com.ibm.team.build.internal.engine.BuildLoop.runLoop(BuildLoop.java:327)
at com.ibm.team.build.internal.engine.BuildLoop$1.run(BuildLoop.java:207)
at java.lang.Thread.run(Thread.java:811)
Build Forge has no record of receiving the build request.
Build Forge: 7.1.2 on SLES 10.3 with DB2 9.5.3 x86
Team Concert Server: 3.0 on SLES 10.3 with DB2 9.5.3 x86
Team Concert Client: 3.0 on Ubuntu 10.04 x86
4 answers
Fixed. The problem is you *should not* create a build engine script! The RTC Server automatically "kicks off" Build Forge engine requests.
Thanks goes to Peter Birk!
It would be nice if the build engine toolkit would validate whether we are requesting an valid build ID -- that is, any Build Forge engine ID should be considered invalid and at least throw a warning.
Thanks goes to Peter Birk!
It would be nice if the build engine toolkit would validate whether we are requesting an valid build ID -- that is, any Build Forge engine ID should be considered invalid and at least throw a warning.
That's correct, JBE should not be invoked on Build Forge or Build Agent engines.
The delegation to BF / BA is done as a periodic task on the server.
BF/BA may invoke JBE as a one-off as needed for the steps (e.g. to do the SCM accept/fetch), but the JBE does not need to be run as a daemon for these scenarios.
I've filed 141183: JBE should check engine type to avoid confusion when used on BF and BA engines.
The delegation to BF / BA is done as a periodic task on the server.
BF/BA may invoke JBE as a one-off as needed for the steps (e.g. to do the SCM accept/fetch), but the JBE does not need to be run as a daemon for these scenarios.
I've filed 141183: JBE should check engine type to avoid confusion when used on BF and BA engines.
I am experiencing the same issue.How exactly did you resolve the problem? I'm using RTC 3.0 and BF 7.1.2 ifix01. I kicked off jbe manually before I requested the build from RTC Client.
Here is JBE output:
Here is the build log
BF does not contain any steps to kick off JBE. Could you let me know how you resolved the issue?
Thanks,
Sefa
Here is JBE output:
root@duke:/opt/install/ibm/rtcbuild/buildsystem/buildengine/eclipse# ./jbe -repository https://fia:9443/ccm -userId rtcadmin -pass rtcadmin -engineId buildengine
2011-01-13 12:08:26 [Jazz build engine] Running build loop...
2011-01-13 12:08:26 [Jazz build engine] Waiting for request...
2011-01-13 12:08:46 [Jazz build engine] Found a user request for build definition "AssetManager build".
Here is the build log
om.ibm.team.build.common.TeamBuildException: Request for build "AssetManager build" does not include a configuration element for the BUILD phase. The Jazz build engine does not support a generic build definition with no builder.
at com.ibm.team.build.internal.engine.BuildLoop.validateBuilder(BuildLoop.java:935)
at com.ibm.team.build.internal.engine.BuildLoop.runLoop(BuildLoop.java:327)
at com.ibm.team.build.internal.engine.BuildLoop$1.run(BuildLoop.java:207)
at java.lang.Thread.run(Thread.java:811)
BF does not contain any steps to kick off JBE. Could you let me know how you resolved the issue?
Thanks,
Sefa
For a Build Forge build definition, you want to let Build Forge pick it up, not JBE.
So JBE should not be run manually for Build Forge build engines. Instead, the Build Forge project corresponding to the build definition may invoke JBE as a one-off, if needed, e.g. to do the Jazz SCM phase or even run the main steps of the build (useful when migrating a legacy JBE-based build to Build Forge).
The JazzJBE.xml adapter is included in Build Forge 7.1.2. For earlier versions, it can be found in the wiki pages covering the new BF integration support in 3.0 at
https://jazz.net/wiki/bin/view/Main/RationalBuildForge
For example, see "JazzJBE.xml Build Forge Adapter" at
https://jazz.net/wiki/bin/view/Main/RationalBuildForge/RTC3M6BFIntegrationEnhancements
"Configuring a Build Forge Build Engine and Definition" at
https://jazz.net/wiki/bin/view/Main/RationalBuildForge/RTC3M7BFIntegrationEnhancements
and "Ability to invoke legacy RTC build definition using Build Forge project and engine" at
https://jazz.net/wiki/bin/view/Main/RationalBuildForge/RTC3M8RC0RC1BFIntegrationEnhancements
I realize this information needs to be made more accessible. We're working on an article that gathers this all in one place. It is in review and will be published soon.
So JBE should not be run manually for Build Forge build engines. Instead, the Build Forge project corresponding to the build definition may invoke JBE as a one-off, if needed, e.g. to do the Jazz SCM phase or even run the main steps of the build (useful when migrating a legacy JBE-based build to Build Forge).
The JazzJBE.xml adapter is included in Build Forge 7.1.2. For earlier versions, it can be found in the wiki pages covering the new BF integration support in 3.0 at
https://jazz.net/wiki/bin/view/Main/RationalBuildForge
For example, see "JazzJBE.xml Build Forge Adapter" at
https://jazz.net/wiki/bin/view/Main/RationalBuildForge/RTC3M6BFIntegrationEnhancements
"Configuring a Build Forge Build Engine and Definition" at
https://jazz.net/wiki/bin/view/Main/RationalBuildForge/RTC3M7BFIntegrationEnhancements
and "Ability to invoke legacy RTC build definition using Build Forge project and engine" at
https://jazz.net/wiki/bin/view/Main/RationalBuildForge/RTC3M8RC0RC1BFIntegrationEnhancements
I realize this information needs to be made more accessible. We're working on an article that gathers this all in one place. It is in review and will be published soon.