Continuous Integration for Swift Packages in Azure DevOps
Overview
I use Azure DevOps for building CI/CD pipelines for professional projects. Given the GitHub integration and broader feature set, I’ve started using it instead of Travis CI for my open-source projects too. For most technology areas, there’s a wide set of pre-built tasks that can be leveraged to build robust pipelines quickly. There are several tasks for compiling and publishing iOS applications using Xcode on transient macOS virtual machines.
However, in the spirit of using Swift like a general-purpose language, I wanted to use a Linux build server, a more industry-standard approach for CI/CD. In my previous post, I described how I set up a Swift executable package to be more testable. This pipeline provides continuous integration for it. Azure Pipelines, which powers CI/CD in Azure DevOps, is scripted in YAML. It also supports integrating shell commands to be run on the virtual machine.

