Skip to main content

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


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" />

The build.rmap looks has a svn provider:

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

This works fine as long as the value for branchTag in the cquery is

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}" />

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,
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.

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

Current Time: Sat Jun 23 05:01:27 GMT 2018

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

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

Back to the top