5 min read

88 years of free open source builds in 8 months with Azure Pipelines

Back in September 2018 we announced our Continuous Integration and Continuous Delivery service, Azure Pipelines. Since that time it has seen phenomenal growth and adoption. Azure Pipelines is one of the services that form a comprehensive suite of collaboration services for development teams as part of Azure DevOps, the next version of Visual Studio Team Services (VSTS). It’s the backbone used by many companies to build and deploy applications for every platform, to any cloud, and also to on-premises infrastructure. Here at Microsoft we do over 82,000 deployments per day of our software and services, using Azure Pipelines.

The part I was most pleased about in the September announcement was that we extended this powerful build and release system to help developers working on open source projects. Not only did we open up anonymous access (essential to allow your community access to your build logs and output), but we also provided unlimited build minutes to open source projects. Developers also get ten free parallel jobs across Windows, macOS, and Linux when building code from public repos. This is fantastic for many open source projects where comprehensive testing across multiple platforms and Linux distributions is essential to help maintainers ensure that every single change they merge is going to work for all the consumers of their software.

In the last month alone, Azure Pipelines was used by more than 10,000 public repositories on GitHub. And, since our launch last September, open source projects have benefited from more than 46.5 million minutes of Azure compute time; that’s over 88 years of free build time, in just 8 months!

The response we have received from the community so far has been fantastic and I’ve had the pleasure of working with a few projects as they adopt Azure Pipelines. Recently I spoke to a few of the maintainers of these projects to share more about their projects and why they are using Azure Pipelines.

Pandas

Pandas is a very popular data science library, and it’s a key module for developers who are working with machine learning and AI. It is used by data scientists across the planet working on all kinds of projects, from large financial institutions predicting fluctuations in the stock market, to researchers taking pictures of black holes. As the popularity of Pandas rose, so did the need to maintain a high standard of quality for all of the developers worldwide who depend on it.

Pandas is written in Python, and it used to rely on two separate CI solutions. Recently they migrated to Azure Pipelines in order to consolidate their builds on a single platform, capable of running on Windows, Linux and macOS.

Pandas is a community-maintained project, and Azure Pipelines lets me be more efficient at reviewing pull requests and contributions. It automatically tests the Pandas code on Windows, Linux and Mac, and I can see the results in one place. If the tests fail for a pull request, I can just tell the contributor to “ping me on green”. 

– Jeff Reback (@jreback), maintainer of the Pandas project

We sat down with Jeff at his home in New York to learn more about Pandas and how it uses Azure Pipelines to help him keep the quality of the library so high while giving rapid feedback to people submitting improvements and modifications.

OptiKey

OptiKey is an on-screen keyboard that was designed to help Motor Neuron Disease (MND) patients interact with Windows computers. When used with an eye-tracking device, OptiKey’s on-screen keyboard allows MND patients to communicate and complete tasks, such as email composition, using only their eyes. OptiKey can also be used in conjunction with a mouse or webcam. Unlike commercial Alternative and Augmentative Communication (AAC) products, OptiKey is completely free and open source, maintained by Julius Sweetland.

Julius originally built OptiKey after his aunt was diagnosed to MND/ALS and she found the commercial offerings available at the time expensive and hard to use. By sharing the software he developed with the world and actively maintaining it in an open source community on GitHub, the project now supports a range of eye-tracking devices in multiple languages and with many different use-cases. OptiKey is now helping many people around the world who might not otherwise have access to augmentative communication products.

I maintain OptiKey in my spare time, but thanks to the fantastic community the project is thriving. Combining the speed, reliability and simplicity of Azure Pipelines with the generous unlimited build minutes, I was able to enable a full build to check every single pull request that comes into the project which not only makes my life easier as a project maintainer – it gives rapid feedback to the person submitting the change.

– Julius Sweetland (@optikey_julius), maintainer of OptiKey

You can learn more about OptiKey by watching this short video we recorded with Julius and featuring some of the people benefiting from builds of his project.

JUnit

JUnit is a household name for Java developers, as it’s the most popular unit testing framework. The JUnit Team is now focusing on JUnit 5, the next generation of JUnit. This project is a test platform that evolved to create a foundation providing end-users and tooling developers with a suite of modules and APIs. This enables them to customize and extend JUnit to a wider set of use cases, with better automation and control over unit testing techniques.

We always wanted to have a single CI service to tackle all platforms and tasks […] the JUnit team quickly saw that this service [Azure Pipelines] matched all of the technical requirements needed to build, test, and release the JUnit project, under a single hood.

– Christian Stein (@sormuras), member of the JUnit core team

Unit testing happens not only on CI environments, but also on local computers, and Java developers are everywhere and using different kinds of operating systems, therefore its critical to ensure JUnit works really well on any platform. Since the first build on Azure Pipelines on February 27th, the JUnit 5 project has seen over 120 builds that cover all major operating systems (Windows, Linux, and macOS), as well the latest versions of Java, with builds that cover OpenJDK 11 (LTS) and OpenJDK 12 (Technical Preview). 

Fastify

Developers working with Node.js can choose among a wide range of framework to build web applications. Fastify is a web framework highly focused on providing the best developer experience with the least overhead and a powerful plugin architecture.

Matteo Collina, one of the maintainers of the Fastify project and core contributor of Node.js, chose Azure Pipelines for Fastify and for other projects, because it’s easy to set up and supports both Linux and Windows builds.

With ten concurrent builds, we can use Azure Pipelines to test Fastify across different Node.js versions, package managers, and operating systems. We are maintaining an open source project, and being able to leverage all of this for free is of huge help to us. 

– Matteo Collina (@matteocollina), maintainer of the Fastify project

Helping your project

Today at the Microsoft Build conference in Seattle we are announcing some new and exciting features for Azure Pipelines, also benefitting developers working on open source projects. Keep an eye on the Azure DevOps Blog for what’s coming! 

If you maintain an open source project, sign up for Azure Pipelines, and start adding Continuous Integration to your open source projects. You get unlimited build minutes and ten concurrent pipelines across Windows, Linux or macOS, all for free for public repos.

Feel free to drop me a line on Twitter (@MartinWoodward) if you need any help getting started or would like us to feature your project.