Porting an Azure Pipeline (YAML) to a GitHub Action

I’ve been a long time user of Azure Pipelines. It’s a very mature and powerful platform, that integrates really well with other parts of the Azure DevOps suite, to provide end-to-end traceability of the software development lifecycle. However, Microsoft is investing heavily in GitHub which now has some very appealing capabilities: source code security, development insights and analytics, open source and innersource management, etc. As these new capabilities get built out in GitHub, I’d like to explore what is takes to move things over. In this post I’ll be documenting what it takes to port one of my existing Azure Pipelines (YAML) to GitHub Actions.

Continue reading Porting an Azure Pipeline (YAML) to a GitHub Action

How to reduce the size of your TFS/Azure DevOps Server collection databases

The size of your TFS/Azure DevOps Server collection databases will grow over time, and it’s not a trivial task figuring out how to cleanup. This conversation usually begins in preparation for an upgrade or migration to Azure DevOps Services. I have some general steps you can take to begin these efforts.

Continue reading How to reduce the size of your TFS/Azure DevOps Server collection databases

Azure DevOps Pipelines: Variables, $Variables, __Variables__, $env:Variables, $(Variables), %VARIABLES%

If you’re working with Azure DevOps Pipelines, you should be aware of all your options when it comes to using variables. They make it possible to “Build Once, Deploy Anywhere”, prevent code-reuse, and build scale-able CI/CD pipelines.

Continue reading Azure DevOps Pipelines: Variables, $Variables, __Variables__, $env:Variables, $(Variables), %VARIABLES%

Start-IISCommitDelay / Stop-IISCommitDelay

Today I discovered the Start-IISCommitDelay and Stop-IISCommitDelay cmdlets available in the IISAdministration module. In the past I’ve randomly encountered errors when issuing back to back commands that modify the applicationHost.config file:

Filename: \\?\C:\Windows\system32\inetsrv\config\applicationHost.config
Error: Cannot write configuration file

Continue reading Start-IISCommitDelay / Stop-IISCommitDelay

Trigger an Azure Function (PowerShell) from an Azure DevOps Pipeline

Azure DevOps Pipelines Azure Functions PowerShell

When I recently heard the announcement for Public Preview of PowerShell in Azure Functions 2.x, I was excited to give it a test drive. One of the first use cases I thought of was using this for custom scripts that run on a build server. For example, a PowerShell script that generates some sort of report and emails users with the results. Rather than running this on a build server, we can use Azure Functions to reap some of the benefits of serverless. In this post I’ll walk through setting up an Azure Function that’s triggered by an Azure Pipelines release definition via HTTP.

Continue reading Trigger an Azure Function (PowerShell) from an Azure DevOps Pipeline