A while ago, I needed to move an Azure DevOps Git repository from one organization to another. And that was far easier than I thought. For once, a nice surprise from Git _and_ Azure DevOps 😀 So, let me tell you how that’s done! Well, how it’s done if it goes well, anyway. And if still works as it used to when you’re reading this. We’ll see! Solution Posts Related to “How to import an Azure DevOps Git repository… From another Azure DevOps organization?”:Azure IoT…Continue reading How to import an Azure DevOps Git repository… From another Azure DevOps organization?
This article explains a solution to a rather annoying issue, where certificate validation for builds trying to fetch NuGet packages published by Microsoft fails when using .NET 5. This happens at least with Docker build when you’re relying on some Microsoft-provided images… But probably also in a lot of other cases. Problem When running an Azure DevOps pipeline with any task that does any Docker stuff, your build fails. Or if you’ve configured your build differently, perhaps the task just fails. Or if your configuration…Continue reading How to fix NU3028 and NU3037 errors in Azure DevOps builds?
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 do a dry run for the deployment – see if everything works well but not…Continue reading How to roll back an Azure IoT Edge layered deployment?
So some time ago, I needed to configure my first Azure DevOps pipeline for an Azure IoT Edge project. I needed to figure out which tasks to use, how to handle variables – all that good stuff. And let’s call it a learning experience. Pro tip: AzureIoTEdge task is not the way to go :) This article has actually been more than a year in the making, but as usual, it takes me a while to get around to polishing things into a publishable form.…Continue reading How to configure Azure IoT Edge deployments in Azure DevOps pipeline?
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 to fire based on an external webhook that was defined as a service connection to…Continue reading Azure DevOps incoming webhook just won’t fire? Easy (stupid) fix!
This article describes the gotchas and weird one-offs that I’ve encountered with Azure IoT Edge so far. Consider them not-too-thoroughly tested quick fixes that aren’t significant enough to warrant an actual blog post themselves :) Okay – let’s get to them gotchas, then! Posts Related to “Azure IoT Edge gotchas – and how to overcome them!”:Azure IoT Edge order of deployment operationsHow to update application settings of an Azure Functions App in Azure DevOps PipelineHow to configure Azure IoT Edge deployments in Azure DevOps pipeline?
Another one in the series of “this should’ve been easy, but alas, you’re the edge case”. “You” being “me”, and the “edge case” being our internal npm feed (registry), for whatever reason. Ah, well – life would be extremely boring if everything always went according to documentation, right? So, instead of the built-in ways to access npm feeds, this solution includes some PowerShell. Ah – that’s when you know it’s going to be good, right? When someone goes as far as to throw away the…Continue reading How to authenticate against npm registries in Azure DevOps?
This article explains a quick solution to a pretty common Azure DevOps problem. Namely – random and annoying 404 (or sometimes 401) errors when trying to access your dear team projects. I forgot to take screenshots of the errors and couldn’t figure out how to reproduce them, but hey, the fix is the main point, right? 😀 If you’ve ended up on this page, you’ve probably encountered the issue already, so why would you care about the screenshots anyway. Solution Ok, so this is a…Continue reading Azure DevOps suddenly 404s for your project? Easy fix!
This article aims to patch one annoying gap in Microsoft’s documentation: how, exactly, do you update Azure Function App’s application settings using an Azure DevOps build/release pipeline? It sounds easy, and something that should happen almost automatically – and for Azure Web Apps (or App Services, as they are often called) it IS practically automatic. But for Azure Functions, it isn’t. And the docs aren’t perfect. Let me try and fix that. Problem Azure Functions won’t take your appsettings.json file, “mapping” your variable groups or…Continue reading How to update application settings of an Azure Functions App in Azure DevOps Pipeline
This article documents one of the simplest solutions to one of the simplest issues you might ever encounter with Azure DevOps. Still: it’s a pretty annoying one, and the solution – as simple as it is – seems worth documenting for the next time I’m googling this fervently as I’m afraid of losing my unsaved changes again… :) Essentially, your editor view in Azure DevOps times out and you risk losing any changes that you’ve made, and it’s all due to clumsy authentication implementation by…Continue reading Azure DevOps throwing “Unexpected token < in JSON at position 4"
Let’s go with a very simple “note-to-self” kind of a blog post today. Plenty of those to go around on this blog, and I am sure that there will be plenty more! This one is another case that should be really obvious, but isn’t, and should just work, but doesn’t. Namely, when you have run a pipeline in Azure DevOps expecting it to publish a package in your internal NuGet feed so that all of your friends can use it. And Azure DevOps is great…Continue reading How to access invisible packages in Azure DevOps artifact feed?
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 YAML for your convenience. Well – and mine. Background So I got a question about…Continue reading How to run Robot tests on an Azure DevOps hosted agent?
Azure DevOps pipelines have a pretty handy feature called Pipeline Caching. It’ll help you avoid annoyingly long NuGet package restores in your builds. And that makes sense – why would you restore packages again and again and again, if you’re not updating your dependencies meanwhile? And especially in the case of CI or CD pipeline, you’ll end up having a pipeline running constantly without packages actually getting bumped up – so your NuGet task is downloading the same packages over and over again. That’s where…Continue reading Azure DevOps Pipelines Caching
This article explains how to fix one of the many issues you might face when configuring Pulumi deployments for your Azure DevOps Pipelines! The particular error you may run into was “azureblob.OpenBucket: accountName is required” – what a descriptive one, when there’s no accountName to be specified anywhere! But first – let’s get through the basics. Namely… “Pulumi?”, you ask – “What’s that?” Well, let me give you a 1-line response to that. One very long line, that is. But what was the error I…Continue reading Pulumi task on Azure DevOps fails with error “azureblob.OpenBucket: accountName is required”
This article will briefly explain the different NuGet package versioning schemes – both automatic and manual – available. Then we’ll take a look at how to implement a nifty, and quite frankly, downright elegant automatic versioning scheme for your NuGet packages. Okay – returning from quite a trip down another rabbit hole, I think it’s a good time to document some of my findings in regards to Azure DevOps NuGet package versioning! This seems to be another area, where the documentation certainly does exist, but…Continue reading Fun with Azure DevOps NuGet package versioning!
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. The snippets below can be combined with logic to install different versions of Chrome and…Continue reading How to find out which WebDriver version is installed on an Azure DevOps build machine using YAML?
We were working on getting our Robot Framework tests running during our builds on Azure DevOps. However, using hosted agents, it was quite a struggle to get all of the dependencies on the agent and make sure the tests can access the browser on the build machine. In our case, we were running the tests in Chrome. For this, we needed Robot Framework and some of its dependencies to be installed on the machine. Luckily, that wasn’t too complicated – however, getting the WebDriver that…Continue reading How to use the right version of the WebDriver on hosted agents in Azure DevOps?
I ran into another interesting one when working with a .NET Core 3.0 project and Entity Framework Core – this time, RuntimeIdentifier configuration causing trouble. In short, running Update-Database (to apply code-first migrations to your local database) locally would return this, annoying error: I suspect this can happen with any x86 runtimeIdentifier, but the one I had specified in my .csproj-file was this: This value (or similar) is required for a self-contained ASP.NET Core deployment. And I’m sure there are a few other reasons why…Continue reading EF Core fails to load hostpolicy.dll when RuntimeIdentifier is win-x86
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 project (usually you pass the same variable to NuGet pack command that you used earlier…Continue reading Azure DevOps – how to package a single DLL?
This was another peculiar one – something, that didn’t bring up too many results on Google. Always fun trying to figure out those! So, when configuring an Azure DevOps pipeline (build) for a .NET project, you might run into this annoying error: ##[error]The nuget command failed with exit code(1) and error(Cannot determine the packages folder to restore NuGet packages. Please specify either -PackagesDirectory or -SolutionDirectory. Job: “The nuget command failed with exit code(1) and error(Cannot determine the packages folder to restore NuGet packages. Please specify…Continue reading Azure DevOps build fails with “The nuget command failed with exit code(1) and error(Cannot determine the packages folder to restore NuGet packages.”