Always ship Azure DevOps.

Working YAML sample of a remote repository CI trigger in Azure DevOps

It took me something like 10 years of struggling to get remote triggers to finally fire in Azure DevOps, and in this article I’ll share how I finally got the remote repository trigger to work for an actual Team Project in real production use (and that’s a first!) 😃 Okay, I know, that’s a bit rich – they’ve been supported for maybe a few years, so there’s no way I’ve…Continue reading Working YAML sample of a remote repository CI trigger in Azure DevOps

Variable reference is not valid. ':' was not followed by a valid variable name character. Consider using ${} to delimit the name

How to fix Azure DevOps “Variable reference is not valid. ‘:’ was not followed by a valid variable name character. Consider using ${} to delimit the name”

This article explains one possible reason why you might run into an error like “Variable reference is not valid. ‘:’ was not followed by a valid variable name character. Consider using ${} to delimit the name” when using a PowerShell task in an Azure DevOps pipeline. Confusingly, the offending line might be this: Write-Host (‘##vso[task.debug]$LASTEXITCODE: {0}’ -f $LASTEXITCOD … Not something you even have in your script! What gives? Problem…Continue reading How to fix Azure DevOps “Variable reference is not valid. ‘:’ was not followed by a valid variable name character. Consider using ${} to delimit the name”

Batman does not deploy again. He rolls back like a boss.

How to roll back an Azure IoT Edge layered deployment?

Have you ever wondered how you could roll back the latest layered Azure IoT Edge deployment? I have – it’s actually pretty useful. But what for? Well, perhaps it’s useful as the last step or whatever interesting Azure DevOps pipelines you have to deploy changes to an Edge device, run tests, and then remove the deployment. You could possibly have it as an optional parameter in case you want to…Continue reading How to roll back an Azure IoT Edge layered deployment?

Not sure if a bug or a feature

Azure DevOps incoming webhook just won’t fire? Easy (stupid) fix!

This article documents a simple but annoying fix to an issue with Azure DevOps. In this particular case, an incoming webhook (configured as a service connection) would fail to fire, no matter what. It turns out that it’s a bug in Azure DevOps – who would have thought :) Luckily, there’s a fairly simple workaround available! Problem A colleague was configuring a new pipeline in Azure DevOps. It was supposed…Continue reading Azure DevOps incoming webhook just won’t fire? Easy (stupid) fix!

Azure DevOps - Always Be Shipping!

How to run Robot tests on an Azure DevOps hosted agent?

This short article simply documents how to install the dependencies for running Robot Framework on Azure DevOps’ hosted agents. This simple tip comes in handy when you need to run any UI testing for your project after build, as Robot Framework is a great and widely used tool for that. Let’s quickly take a look at the background of the issue, after which I’m sharing a highly copy-pasteable piece of…Continue reading How to run Robot tests on an Azure DevOps hosted agent?

ChromeWebDriver version in Azure DevOps build pipeline job's log output

How to find out which WebDriver version is installed on an Azure DevOps build machine using YAML?

Uh, okay, well. So this is where you should just RTFM (that’s along the lines of “check the documentation” for those uninitiated in the world of unnecessary abbreviations). But as we’ve found out before, Microsoft’s documentation on the agent’s installed software isn’t always up-to-date. That’s why I added this simple snippet on my pipeline to figure out which version of the browser AND the webdriver are installed on the machine.…Continue reading How to find out which WebDriver version is installed on an Azure DevOps build machine using YAML?

Version Control problems

How to resolve “refusing to allow an integration to create or update .github/workflows/main.yml” on GitHub Desktop?

Ran into this one when trying to push my merge from upstream. I was adhering to my own instructions (see below for a link), but got the error (further below) that stopped me from using GitHub Desktop to push (sync) at all. Posts Related to “How to resolve “refusing to allow an integration to create or update .github/workflows/main.yml” on GitHub Desktop?”:Sync local repo with the original on GitHub (Git merge…Continue reading How to resolve “refusing to allow an integration to create or update .github/workflows/main.yml” on GitHub Desktop?

Azure DevOps - Always Be Shipping!

Azure DevOps – how to package a single DLL?

Okay – a quick piece of documentation that was a bit lackluster, so it’s again a good idea to log somewhere. How to package a simple DLL that’s a result of your Azure DevOps Pipeline? In my particular case, I have configured a post-build step to obfuscate the DLL, that’s first built by MSBuild. That works nicely. However, the default way to create a NuGet package, where you select a…Continue reading Azure DevOps – how to package a single DLL?