Where has the staging URL PR comment generated by my GitHub Actions workflow gone?

The Issue Last week I noticed that the staging URL that is normally output as a comment was missing from new GitHub PRs. Previously, this URL was added automatically by the Azure/static-web-apps-deploy GitHub Action for PRs in our Hugo based websites. After a bit of digging, I noticed a warning message in the logs of the Action that said: … Done Zipping App Artifacts Uploading build artifacts. Finished Upload. Polling on deployment. Status: InProgress. Time: 0.178533(s) Status: Succeeded. Time: 15.3731517(s) Deployment Complete :) Visit your site at: https://white-glacier-0d2380f03-300.westeurope.2.azurestaticapps.net Unexectedly failed to add GitHub comment. Thanks for using Azure Static Web Apps! Exiting ...

July 2, 2024 · 2 min · Richard Fennell

Don't call your Azure DevOps YAML Deployment stage 'deployment' - strange things happen

Just a little reminder, probably to my future self, to not call your Azure DevOps YAML Deployment stage ‘deployment’. If you forget you can expect to waste plenty of time, like we did last week, with environment agents not picking up queued jobs with no diagnostic logging messages to give you a clue as to what is going on. This issue has been reported on StackOverflow where it was pointed out that the official documentation used ‘deployment’ as the stage name. The good news is that at least the documentation is now fixed, but there is still the chance you can make this naming mistake all on your own. ...

July 1, 2024 · 1 min · Richard Fennell

It's the SonarQube Elasticsearch indexes again

Background I just upgraded our Azure/Docker container hosted SonarQube instance from 10.5.1 to 10.6.0. This was partly due to our usual upgrade process, we try to upgrade within a week or so of a new release, but also to address a specific Java issue we started to see when using the SonarQube@6 Azure DevOps tasks. The error was the SonarQube analysis completed successfully, but the clean up process failed with this JVM error. ...

June 28, 2024 · 2 min · Richard Fennell

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. My pipeline was triggered off a PR, so the cache was being created on the ‘branch’ PR #123. This was working as expected, all runs of the PR triggered build used the cache after the initial run. However, if I manually triggered pipeline run of the same branch as the PR was using, there was a cache miss. ...

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

Fix for SonarQube recoverable indexing failures error

The Issue Within one of our Azure DevOps builds we today started to see the following error when running the SonarQube analysis step: ##[error][SQ] Task failed with status FAILED, Error message: Unrecoverable indexing failures: 1 errors among 1 requests. Check Elasticsearch logs for further details. Nothing obvious pointed to why this should have started to occur, the SonarQube logs showed nothing more than a longer version of the same message. ...

May 16, 2024 · 1 min · Richard Fennell

Announcing a Global DevOps Experience venue at Black Marble

Background In past years, pre Covid, Black Marble hosted a venue for the Global DevOps Bootcamp, a community run in person hackathon event. After a short hiatus, I am pleased to be able to say this event has a successor, the Global DevOps Experience which is being run on the 15th of June at many venues around the world, including Black Marble’s offices. What will be involved? 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. ...

May 13, 2024 · 2 min · Richard Fennell