Getting Started with Azure DevOps CI - Chapter 2

This post follows on from my previous one on getting started with Azure DevOps. Read that first if you have yet to create an organisation, project or repository.

Create project

I’m not sure if building a house of cards is a great metaphor but let’s move on to using the project info features.

A great first step is to add a to your repository with a description and instructions for how to run the project locally. You can use the Azure DevOps web interface for this, which includes a built-in markdown preview (much the same as VS Code does).

Once you have your description you can add it to your project. This will help others on your team (and future you) to understand it.

Add project description

You can also add markdown files as dashboard widgets. Simply add a markdown widget to your dashboard and configure it to use the readme in your repository.

Add widget Add markdown widget Configure markdown widget

You can add other widgets that report on build and release status. If you want to run this as a wall-board then you will probably want to run it full-screen, which you can do with the button at the top right.

Configure dashboard buttons

You will also want to configure your dashboard to auto-refresh every 5 minutes with the checkbox in the settings.

Configure dashboard

Other useful information radiators for wall-boards are, unsurprisingly, the boards.


If you’re running these full-screen then make sure live updates are enabled (under options).

Boards live updates

You may have noticed that there is a dark theme available (in settings), which you may find easier on the eyes.

You can integrate Azure DevOps with many other applications, including your preferred chats-ops messaging service. This allow you to send a message to a channel when a build fails or a release is deployed to an environment.

Many of these are web service hook subscriptions with a push model. However, MS Teams requires a different approach.

MS Teams Azure DevOps integration

You need to start the integration from within Teams. This is easier said than done and I got stuck in an account switching loop.

MS Teams fail

I think I’ll stick with Slack for the time being.

In future posts I’ll show how to set up CI builds/tests for .NET Core on Linux VMs using the new YAML pipelines and how to automate deployment of releases to your on-premise servers with agents and deployment groups.

If you find these guides useful then let me know and I’ll put together an eBook with more detailed steps.

This blog is treeware! If you found it useful then please plant a tree.
Donate a treeDonate a tree🌳🌳