Always ship Azure DevOps.

Azure DevOps suddenly 404s for your project? Easy fix!

This article explains a quick solution to a pretty common problem with Azure DevOps. 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…Continue reading Azure DevOps suddenly 404s for your project? Easy fix!

Azure DevOps - Always Be Shipping!

How to update application settings of an Azure Functions App in Azure DevOps Pipeline

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 like 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…Continue reading How to update application settings of an Azure Functions App in Azure DevOps Pipeline

Azure DevOps throwing "Unexpected token < in JSON at position 4"

Azure DevOps throwing “Unexpected token < in JSON at position 4"

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 you’ve done, and it’s all due to clumsy authentication implementation by Microsoft.…Continue reading Azure DevOps throwing “Unexpected token < in JSON at position 4"

Always ship Azure DevOps.

How to access invisible packages in Azure DevOps artifact feed?

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?

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 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?

An accurate depiction of a NuGet package factory

Azure DevOps Pipelines Caching

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

Pulumi Azure Next-gen logo/splash

Pulumi task on Azure DevOps fails with error “azureblob.OpenBucket: accountName is required”

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”

Azure DevOps - Always Be Shipping!

Fun with Azure DevOps NuGet package versioning!

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!

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. 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?

Always ship Azure DevOps.

How to use the right version of the WebDriver on hosted agents in Azure DevOps?

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?

Build successful? SHIP IT!

EF Core fails to load hostpolicy.dll when RuntimeIdentifier is win-x86

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: Failed to load the dll from [runtimepath]\win-x86\hostpolicy.dll], HRESULT: 0x800700C1 An error occurred while loading required library hostpolicy.dll from [runtimepath]\win-x86\] I suspect this can happen with any x86 runtimeIdentifier, but the one I had specified in my .csproj-file was this: win-x86 This value (or…Continue reading EF Core fails to load hostpolicy.dll when RuntimeIdentifier is win-x86

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 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?

Azure DevOps - Always Be Shipping!

Azure DevOps build fails with “The nuget command failed with exit code(1) and error(Cannot determine the packages folder to restore NuGet packages.”

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.”