Andrew Wilson's Blog

{ ... Plan - Architect - Develop - Reflect - Improve - Repeat ... }

Automating Semantic Versioning in Azure DevOps CI/CD Pipelines with GitVersion

Overview Versioning is the unsung hero of software development—often overlooked but absolutely essential. Imagine trying to manage a project without a clear way to track changes, communicate updates, or ensure compatibility. Chaos, right? That’s where versioning steps in, providing structure and clarity. In this post, I’ll share how I streamline versioning in my projects by combining the power of Semantic Versioning (SemVer) with GitVersion, an automation tool that eliminates the manual effort of version management.

webpack | Build Time Environment Variables With Azure DevOps Yaml CI/CD

Problem Space One of my recent projects has involved the use of a static module bundler called webpack to bundle a typescript site so I can serve static content from a Static Web App in Azure. For a while now the site content has not deviated between environments [ dev / test / prod ] and therefore we have simply built and bundled the site for deployment. Recent changes however have required that there be some deviation between environments, at which point the question raised, at what point should this deviation be set or retrieved?

Azure DevOps Pipeline | Git Shallow Fetch

Problem Space I have been recently working on building a new Yaml pipeline in Azure DevOps and wished to use the GitVersion Task, however, upon running the pipeline the task failed with the following error: ERROR [../../.. ..:..:..:..] An unexpected error occurred: System.NullReferenceException: Object reference not set to an instance of an object. After some digging and a conversation with one of my colleagues, it turns out there has been a change on Azure DevOps pipelines.