Running UWP Unit Tests as part of an Azure DevOps Pipeline

I was reminded recently of the hoops you have to jump through to run UWP unit tests within an Azure DevOps automated build. The key steps you need to remember are as follows Desktop Interaction The build agent should not be running as a service it must be able to interact with the desktop. If you did not set this mode during configuration this post from Donovan Brown shows how to swap the agent over without a complete reconfiguration....

December 8, 2020 · 2 min · Richard Fennell

Out of Memory running SonarQube Analysis on a large projects

Whilst adding SonarQube analysis to a large project I started getting memory errors during the analysis phase. The solution was to up the memory available to the SonarQube Scanner on the my build agent, not the memory on the SonarQube server as I had first thought. This is done with an environment variable as per the documentation, but how best to do this within our Azure DevOps build systems? The easiest way to set the environment variable `SONAR_SCANNER_OPTS` on every build agent is to just set it via a Azure Pipeline variable....

December 1, 2020 · 1 min · Richard Fennell

Getting confused over Azure DevOps Pipeline variable evaluation

Introduction The use of variables is important in Azure DevOps pipelines, especially when using YML templates. They allow a single pipeline to be used for multiple branches/configurations etc. The most common form of variables you see is are the predefined built in variables e.g. $(Build.BuildNumber) and your own custom ones e.g. $(var). Usually the value of these variables are set before/as the build is run, as an input condition. But this is not the only way variables can be used....

November 27, 2020 · 3 min · Richard Fennell

How to export Azure DevOps Classic Builds and Release to YAML

This is another one of those posts so I can remember where some useful information is…. If you are migrating your Azure DevOps Classic Builds and Release to Multi-Stage YAML then an import step is to export all the exiting build, task groups and release as YAML files. You can do this by hand within the Pipeline UI, with a lot of cut and pasting, but much easier is to use the excellent Yamlizr - Azure DevOps Classic-to-YAML Pipelines CLI from Alex Vincent....

November 13, 2020 · 1 min · Richard Fennell

Getting my ThinkPad Active Pen working with my Lenovo X1 Carbon Extreme

I have had a ThinkPad Active Pen (model SD60G957200) ever since I got my Lenovo X1 Carbon Extreme. The pen, when it works, has worked well. However, the problem has been that whether the pen and PC detected each other seemed very hit and miss. Today I found the root cause. It was not drivers or dodgy Bluetooth as I had thought, but a weak spring inside the pen. It was not so weak that the battery rattled, but weak enough that the electrical circuit was not being closed reliably on the battery....

November 6, 2020 · 1 min · Richard Fennell