Trigger Visual Studio Team Services (VSTS) CI Build from BitBucket

We use BitBucket for our source control and VSTS for CI. VSTS build definition has a trigger option which will monitor the repository every so many seconds (min is 60s) and if new changes are there it will trigger the build. But that feature only works when you have VSTS repositories  and for any external repository the developer needs to login to VSTS after the changes are pushed and wait for at least 60 seconds for the build to kick off. I’m pretty sure that manually triggering the build takes less time. Also, that model by itself is not efficient specially in the world of Webhooks.

BitBucket supports Webhooks. For example you can call add Webhooks for each push (unfortunately you can not specify a branch). The problem is that VSTS CI build definition does not accept Webhooks as trigger.

In this post I’m going to show how this can be done by using BitBucket Webhooks , Azure Function Apps and VSTS REST API.

Continue reading Trigger Visual Studio Team Services (VSTS) CI Build from BitBucket

Why did I choose Azure API App over Function App?

This week we decided to create a new isolated mission critical but dead simple and small api in order to publish our web api endpoint address to the mobile clients.

The use-case is very simple: pass platform, version and environment (dev/prod) and receive the api that you need to work with.

Why did we decide that?
This is going to help us seamlessly and gradually shift between old production environment to the new production environment.

Last week I watched a presentation  about Azure Function Apps and kind of fell in love with the concept.

Because of the following advantages I knew right a way that’s the best solution for us in order to implement that single, very small and mission critical api method:

  • next to nothing development time
  • automatic deployment from a git repository
  • use dynamic or classic app service instances
  • cheap
  • reliable

This week while starting to do the design an implementation and after some experiments I decided to go with API Apps instead, because of following reasons:

Continue reading Why did I choose Azure API App over Function App?