Up to now, Stack has been using a number of CI solutions:

There are a number of problems we’re running into:

Azure LogoBack in September, Microsoft announced Azure Pipelines, a new CI/CD service that integrates with Github, provides unlimited free build minutes, a 20 hour time limit for jobs, and supports all three major platforms (Linux, macOS, and Windows). This looked very intriguing, and we’ve been trying it out with success.

Converting all the existing pipelines was not trivial, but also not overly difficult. See the YAML configurations for unit tests, nightly integration tests, and templates they reference.

The Azure Pipelines UI is not very intuitive. In particular, adding a second pipeline (for nightlies) was confusing, and it’s hard to find settings and options.While we are generally happy with Azure Pipelines, that is not to say everything is perfect:

We’ve added a page to the Stack documentation with details on how to enable Azure Pipelines for your own Haskell projects.

Any contributions to move other commercialhaskell or fpco repos over to Azure Pipelines would be welcome (we don’t necessarily plan to move them all over immediately if Travis is working well enough, but happy for help any time).

Do you like this blog post and need help with DevOps, Rust or functional programming? Contact us.

Share this