Continuous Integration (CI) is fantastic for software development and
deployment. One of the newest entries into the CI market is Microsoft’s
Azure DevOps. Their Open Source support is impressive; it is likely part of
the recent push by Microsoft to be more Open Source friendly. Open Source
projects get 10 parallel builds, unlimited build minutes, 6 hour job timeouts,
and incredibly fast jobs on macOS, Linux, and Windows, all via a single
platform. Quite a few major projects have been moving to Azure since the
initial release in December 2018. The configuration of DevOps is second only to
GitLab CI in ease of use and possibly the most expressive system available. The
multiple pipeline support also scales well to complicated procedures.
This is the first in a series of posts covering an
introduction to setting up projects in Azure DevOps, developed to update the
testing and releasing of Python packages for Scikit-HEP, a project for a
coherent High Energy Physics Python analysis toolset. The
second post covers release pipelines, and the
third covers building binary Python packages
using DevOps.
Note: I now highly recommend GitHub Actions, which is almost “Azure 2.0”, if you
are interested in setting up CI. The language is very similar, although
simplified, with some non-backward compatible bugfixes (such as multiline
expressions will error if any line files, instead of just on the last line in
Azure). You can read my tutorials on GitHub Actions on the Scikit-HEP developer
pages.
[Read More]