Following a chain after a manual run in the end

We have the following scenario:
* We use git as VCS
* Development is done on master branch
* Releases are branched into r/* (e.g. r/1.0.0)
* All build configurations monitor master and +:/refs/heads/r/*
* We use a pull based system with snapshot dependencies.
* The "ultimate target" for all checkins is "Installer", which correctly triggers its upstream configurations.
* We have a manual step, "Publish" that pushes the installer to an external site. It should not happen on every build, but only when it's time for the bits to leave R&D.
* I understand that manually running a configuration will trigger it on the default branch.
* Therefore, we added configuration "Publish v1.0.0", which has a separate VCSroot with the default branch refs/heads/r/1.0.0. It has a snapshot dependency on Installer and artefacts from the same build chain.

Exp: When I manually run "Publish v1.0.0" the artefacts should be served up (from storage or rebuilt) on the r/1.0.0 branch
Act: When I manually run "Publish v1.0.0" the artefacts are sucked in from _master_ branch. (i.e. the default branch for the upstreams, but not the default branch for the requested configuration).

We're using TC7.1.3.

One work-around would be to go back to the stone age days and clone the entire project when we make a new release branch. That is not desired from an administrative point of view.

I would like to be able to add only a new "Publish vX.X.X" configuration in the same project whenever we branch, and have that configuration, when ran manually, to follow the dependency chain of its defined master branch (or commit ID - that would amount to the same thing, I guess).

Thus, my question: How do I accomplish avoiding having to duplicate the project given the above scenario?

--Jesper Hogstrom

Comment actions Permalink

Hi Jesper,

you can trigger build on any branch manually, for example a Run Custom Build dialog has Changes tab with a branch chooser.

I'd add a snapshot dependency in Publish on Installer and use the same VCS root in both configurations. After that you should be able to run a Publish build on any branch you want manually or automatically. Let me know if it helps.

Comment actions Permalink

Thanks for the pointer to the Changes tab. Unfortunately that didn't work well.

Even though I could specify a specific commit, the upstream builds still indicated they'd build the head of the default (master) branch in the popup, and indeed that was what they actually built as well. The tag preceeding the configuration builds was still refs/heads/master - not the branch my selected commit belong to.

What does work is to change the default branch of the VCSroot, but that feels clunky.

Something that would be very convenient would be to have yet another tab in the manual run popup that allows me to select which branch to build, allowing me to select any branch matching the branch specs, and possibly a checkbox to select from all branches on the server. The build chain would then be based on the latest commit from the selected branch.

I'm using the same VCS root and have set up snapshot dependencies.


Comment actions Permalink

We were quite surprised to see the requested "Branches" combobox appear this morning. It does not appear if there are no additional branch specsspecified in the VCS root, and my suspicion is that we either made a typo in the additional branch spec, or the combo doesn't appear if there is exactly one match in a wild card branch spec.

At any rate, it now works as I expected and as I requested before.

Thanks a bunch.



Please sign in to leave a comment.