Passing dynamically sized object parameters to Azure DevOps Pipeline templates

The Problem I have an Azure DevOps YAML template that does some deployment actions using PowerShell. This template is used multiple locations. The problem is that the PowerShell step within the template needs a variable number of environment variables, set from values stored in an Azure DevOps variable Group. The number of variables is not fixed because they depend on the underlying commands the PowerShell script is triggering to do the deployment....

June 24, 2024 · 2 min · Richard Fennell

Why are my Azure DevOps Pipeline cache hits missing

I have blogged in the past about Caching NVD Vulnerability Dependency data on hosted Azure DevOps Pipeline agents. Using the cache is a great way to speed up slow builds. However, today I was surprised to find I was getting cache misses on my pipeline, even though I was sure the cache should have been hit. There are rules over how the cache is used: The cache is specific to a pipeline definition, so there is no sharing of the cache between pipeline definitions The cache is only created if the pipeline is successful (running the post run tasks) The cache only lasts 7 days but what I had not realised was the cache is also specific to the branch in a not so obvious way....

June 5, 2024 · 2 min · Richard Fennell

Still time to register for the Global DevOps Experience

There is still time to register for the free Global DevOps Experience which is being run on the 15th of June at many venues around the world, including Black Marble’s offices. The Global DevOps Experience is a day full of learning and fun, as we immerse you in the world of DevOps and AI. You will learn about the latest trends and technologies, and work in a team to solve challenging exercises based around a realistic business scenario....

June 3, 2024 · 1 min · Richard Fennell

Azure DevOps pipeline jobs failing to start

The Issue Whilst migrating some Azure DevOps classic pipelines to templated multi-stage YAML, I hit a problem that a job running on a self-hosted agent would not start. The YAML stage, which required approval, would be queued and approved, but the agent would just sit there with the message Starting job but would never start. The strange thing was even though the job was not started, the pipeline instantly showed as failed with no error message....

May 29, 2024 · 1 min · Richard Fennell

Failing client connections with SQL OPENJSON Incorrect Syntax error after upgrading Identity Server 6 to 7

The Issue Whilst updating a client’s Duende Identity Server from versions 6 to 7, we experienced a problem. We followed the upgrade steps and all was working fine against our development instance i.e. the Identity Server Db was upgraded to the current schema and we could login from our test MVC web client without issues. The problem occured when we started to test using our UAT (a production replica) DB. On loading the Identity Server, it did the expected EF migrations and appeared to start, but when a client tried to connect we got an exception in the Identity Server logs in the form...

May 29, 2024 · 1 min · Richard Fennell