1

I am trying to configure release management using VSTS (release hub). I have three different environments; each environment contains two servers.

The Proposed Release pipeline:

Zone1_Dev -> Zone1_QA ->Zone1_PROD (where each one contains two severs)

Talking about the "Zone1_Dev" Environment which contains two servers A and B in the same network.

I have two web applications in my solution, Each Server will host different application:

  • Server A hosts the Client UI (MyClientUI)
  • Server B hosts the Admin UI (MyAdminUI)

enter image description here

So, I created two different Build definitions one for each of the applications, because I want to avoid building the two projects (because they don’t affect each other).

enter image description here

AdminUI definition mapping to MyAdminUI Project:

enter image description here

Then, I Created One Release definition, Because I will move through the release pipeline as following: Zone1_Dev -> Zone1_QA ->Zone1_PROD

enter image description here

The agent is installed on Server A, which will get any of the changes, either in AdminUI or ClientUI. If it is:

  • ClientUI, it will move it to Sever A IIS directory.
  • If AdminUI, the agent will move it to Server B IIS directory.

My Problem, how I can link one release to different build definitions. Because according to my strategy, I have to create two different release definitions with the same configuration but different build definitions. Is there is a way to do that in one release definition since they share the same pipeline?

Hussein Salman
  • 7,806
  • 15
  • 60
  • 98
  • Pretty sure linking one release to different build definitions isn't supported. What would happen if two builds tried to trigger the release at the same time? Why is this a problem? Is it because of having to maintain two identical releases? – Graham Smith Apr 25 '16 at 22:40
  • Yes because i have to maintain multiple servers (this means multiple releases, if the feature doesn't exist) per zone, and i have at least 2 zones. Zone 1 Contains only two servers each one is hosting different application. However, zone 2 (not mentioned in my question) will be the service API, where I have two servers, one of them is hosting 7 wcf service api projects. Would i create 7 different releases (one for each project)? – Hussein Salman Apr 26 '16 at 02:21

1 Answers1

2

You can link one release to different build definitions and the release will download the artifacts of all the linked build definitions. enter image description here

But the release can be only triggered by one definition: enter image description here

Eddie Chen - MSFT
  • 29,708
  • 2
  • 46
  • 60
  • Thanks @Eddie, I appreciate your help. Specifying multiple artifacts per release, then specify the release trigger as proposed, I may miss some changes in another project (UI) if i specify the (Feature). In this way the code and releases are not synchronized. Is this right? What if i Specify specify the trigger as "Manual", would this help? – Hussein Salman Apr 26 '16 at 13:56
  • 1
    @h.salman No, the release will always download the latest build for two definitions. The issue is that, in some condition, some change is made for UI and the build is finished for the change. But there isn't any change for feature. Then the release won't be triggered until there is some change made for feature. This may cause some delay for UI deployment. And in this conditon, you can trigger the release manuall so that the UI change can be deployed in time. – Eddie Chen - MSFT Apr 27 '16 at 01:33
  • @h.salman you add an additional build step to the UI build definition to explicitly trigger the release using the REST API (assuming that the release is set to be triggered by Feature build definition) – ds19 Apr 27 '16 at 06:34