1

Is it possible to setup Continuous Integration on VSTS without using external VM as build agent (https://azure.microsoft.com/en-us/documentation/articles/service-fabric-set-up-continuous-integration/)?

What I would like to achieve is to have one Service Fabric Solution with 2 statefull/stateless services (serviceA and serviceB). I want to build and deploy them separately as different build jobs on VSTS, but to deployed them to the same Service Fabric Cluster on Azure (fabric:/App/ServiceA, fabric:/App/ServiceB).

Przemek Marcinkiewicz
  • 1,267
  • 1
  • 19
  • 32

3 Answers3

1

Unfortunately deploying applications relies on the Service Fabric SDK being installed so you'll need to set up an agent as the instructions suggest. If you don't want to pay for the Azure VM, you might want to consider running the agent service locally e.g. On your devbox.

Note that with Service Fabric you deploy applications, not services. You can however update services independently.

charisk
  • 3,190
  • 2
  • 24
  • 18
  • What do you mean by updating services independently? – Przemek Marcinkiewicz Mar 22 '16 at 12:01
  • If you want to deploy a new version of a service A you can do it without having to deploy a new version of service B. – charisk Mar 22 '16 at 13:33
  • Thats right, but you just said that I deploy application, not services, so new question comes out - How can you achieve updating separate services? – Przemek Marcinkiewicz Mar 22 '16 at 14:01
  • Yes, the unit of deployment is an application but you can still upgrade individual parts of the application. If you only want to upgrade a single service in the application, only include the updated service in the application package and leave the old service unchanged. You can also create a diff package that only contains the individual application components you want to change and use that to upgrade. – Matt Thalman Mar 22 '16 at 21:46
1

It sounds like you need to have service fabric SDK installed on the build machine, and I'm guessing the hosted agent doesn't have that. If that's the case, then yes you need to create your own build server VM

Dylan Smith
  • 22,069
  • 2
  • 47
  • 62
1

As of the Service Fabric SDK 2.1.150 and Runtime 5.1.150 release, it is possible to deploy Service Fabric application using VSTS's hosted build agent as the dependencies can be added via a NuGet package - refer to the following video for details. http://www.dotjson.uk/azure-service-fabric-continous-integration-and-deployment-in-15-minutes/

In your specific case; just create 2 build definitions (1 for each service) and 2 release definitions (1 for each service) and hook them up to the same hosted Service Fabric cluster.

Dotjson
  • 56
  • 4
  • note, if you are deploying to containers you would still need a build agent since the hosted build agent doesn't provide direct support for docker. Also the vsts service fabric task only works for windows and not linux – code4cause Feb 10 '17 at 15:07