I'm wondering how to select the branch to build against using Team City 8.1.
My VCS root (Git) is set to Default: "master" and Branch specifications are
+:refs/heads/develop
+:refs/heads/feature/*
+:refs/heads/hotfix/*
+:refs/heads/master
+:refs/heads/release/*
I have a CI build set up that automatically builds anything that is checked in, which is working exactly how I want.
What I'd like to do is create a scheduled QA build/deployment against the "develop" branch. I see that if I click the ellipsis next to the run button, I can choose the branch on the "Changes" tab, but I'm unable to determine how to make this "stick". Is this possible, or am I going about this wrong?
Thanks,
Joe
Unless disabled via a branch filter, the default branch is always implicitly included into the branch specification. In the TeamCity UI, the default branch is marked with a darker background of the branch marker.
Branch filter description. Version Control Settings of a build configuration. Limit the set of branches available for the build configuration. This branch filter is applied before any other branch filter and limits branches shown in the custom build dialog, as well as branches visible to triggers and build features.
In Branch Specifications, you need to define any additional refs to monitor for changes. Any changes to refs defined in Branch Specification hooks into TeamCity for processing. VCS Root settings for your scenario: Default Branch: /refs/heads/master. Branch Specification: +:*
Based on @biswajit-86 's feedback and some other information I found while googling this, I was able to get this to work. Here's what I did (image-heavy, sorry). It's based on Team City 8.2 which seems to be set up a little differently than the examples I came across.
1) Set up a VCS root. Key here is the %BranchName%
parameter.
2) Create a Build template and use the VCS root that was just created. I also added an MSBuild step as all of my builds need to run this.
3) Create a new build, based on the template. As you can see here, the %BrachName%
parameter that was created in step 1 is available.
4) If you need to change this later, it's available here
And that's pretty much it. For my CI build, I left the branch name empty so any branch that is checked in triggers the MSBuild step. For my QA build, I pass in "develop" as shown here and I have this set up on a daily schedule. I also have a "release" build set up, but based on our naming conventions it looks like I need to update the build to point to the specific branch per release.
You can parameterize the "Ref name" of the git VCS setup. What this means is you declare a variable of the form %variable.name%
in your build, create a build parameter under the "configuration parameter:" category.
For each build target set this value and you should be able to pick the specific branch that you want to run the target for.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With