Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Buckminster » Dynamic branchToTag in cquery
Dynamic branchToTag in cquery [message #669230] Mon, 09 May 2011 14:25 Go to next message
Eclipse UserFriend
Originally posted by: Holger Schmid

Hello,

our development strategy uses svn with a lot of branching. All branches
shall be build and tested on a CI-Server (e.g. Jenkins).

To build our application, we are using the following build.cquery with
one advisor node:

---- build.cquery ----
<cq:componentQuery ... resourceMap="build.rmap">
<cq:rootRequest name="..." componentType="eclipse.feature" />
<cq:advisorNode namePattern="^my.plugin(\..+)?"
useTargetPlatform="false" branchTag="myBranch" />
</cq:componentQuery>
----------------------

The build.rmap looks has a svn provider:

---- build.rmap ----
<rmap>
<searchPath name="svn">
:
<uri
format=" http://user:passwd@svnServer/trunk/{0}?moduleAfterTag&am p;moduleAfterBranch">
<bc:propertyRef key="buckminster.component" />
</uri>
</searchPath>
<locator ... />
</rmap>
--------------------

This works fine as long as the value for branchTag in the cquery is
hard-coded.

Now the problem:
as we do have a lot of branches, we would like to use the same cquery
for all of our branches in order to get our product built and tested on
the CI-Server. What we would like to do is to set the value of the
branchTag using properties when calling the import for our headless
buckminster build:

e.g. change the branchTag in the cquery to:

<cq:componentQuery ... resourceMap="build.rmap">
:
<cq:advisorNode ... branchTag="${branch}" />
</cq:componentQuery>

Invoke the import for the headless build on Jenkins:
import -D branch=myBranch $WORKSPACE/build.cquery

Unfortuantly, this however does not work - we are receiving the
following errors during materialization:
:
my.feature: branch myBranch rejected: not in '${branch}'
my.feature: branch someOtherBranch rejected: not in '${branch}'
:

It looks like ${branch} has not been correctly replaced by "myBranch".
Do you have any solution to get this running?

Best regards,
Holger
Re: Dynamic branchToTag in cquery [message #702541 is a reply to message #669230] Tue, 26 July 2011 14:00 Go to previous message
Matthew Webber is currently offline Matthew WebberFriend
Messages: 198
Registered: December 2010
Senior Member
The way we get around this is to have a property in the CQuery to hold the branch name (since it's a property, it can be overridden). Then we have a series of advisor nodes that look like this:

<cq:advisorNode namePattern=".*" filter="(Repository_branch=trunk)"/>
<cq:advisorNode namePattern=".*" filter="(Repository_branch=8.16)" branchTagPath="8.16"/>
<cq:advisorNode namePattern=".*" filter="(Repository_branch=8.14)" branchTagPath="8.14"/>
<cq:advisorNode namePattern=".*" filter="(Repository_branch=8.14_SLS)" branchTagPath="8.14_SLS"/>
<cq:advisorNode namePattern=".*" filter="(Repository_branch=8.12)" branchTagPath="8.12"/>

It's clunky, and inflexible (your possible branch names have to be pre-defined), but it does work.

I would suggest that you open an enhancement request in Bugzilla, asking that the branchTagPath do property expansion.

Matthew
Previous Topic:{fs:translations} does not exist
Next Topic:Headless buckminster and script file
Goto Forum:
  


Current Time: Tue Nov 25 21:02:52 GMT 2014

Powered by FUDForum. Page generated in 0.01840 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software