chris - Fotolia
Microsoft Azure DevOps and GitHub Actions serve similar purposes with similar feature sets, which begs the question: Why would Microsoft support two overlapping products, and which one should your IT team choose?
Azure DevOps was making strides as the de facto CI/CD tool offered by Microsoft and was widely used by the enterprise community. But then in 2018, Microsoft acquired GitHub and made significant improvements to the platform, resulting in another CI/CD tool -- GitHub Actions.
Azure DevOps is a suite of tools for code repository, CI/CD and project management. GitHub Actions is GitHub's implementation of CI/CD. Both tools are designed so IT teams can efficiently manage software delivery. Now that Microsoft owns GitHub, workflow patterns and integration seen in one product quickly find their way into the other.
So, if you're comparing Azure DevOps vs. GitHub Actions, review their notable features to find the best tool for the job.
Code repository and CI/CD pipeline
As standalone repositories, both products excel. GitHub is the most well-known code repository, but Azure DevOps' repository is nothing to scoff at. Both offer the same functions, such as using SSH or HTTPS to interact with the repository and track commits from the web UI. The two products handle pull requests similarly -- they can be approved or rejected before they are merged into a branch.
Another similarity is the methodical CI/CD pipeline process. In Azure DevOps, each action within a CI/CD pipeline section is defined in steps. GitHub Actions also uses steps to carry out procedures in a systematic fashion. Each of these steps defines procedures to be executed to deliver software.
However, there are nuances specific to each product. For example, both tools have different trigger processes. Azure DevOps has a simplified format for triggering the workflow based on a push to a specific branch or branches. GitHub has a plethora of triggers, and admins can configure a workflow to execute based on a pull request or push to a branch.
It's often difficult to shift between different CI/CD tools. For example, if you move from Jenkins to either GitHub Actions or Azure DevOps, you face a complete shift in syntax. Jenkins uses a Groovy-like syntax when defining a pipeline, whereas Azure DevOps and GitHub Actions use YAML. Since they use the same syntax, switching between GitHub Actions and Azure DevOps is an easy transition.
Since pipelines can be treated as code defined within the code repository, YAML eases the switch between the two products. Azure DevOps and GitHub Actions may not have the exact same keywords, but they both share the structure in their workflow files. This makes it easier to convert pipeline workflow between the two than it would be going from Jenkins to one of these tools.
IT pros can use the GitHub and Azure DevOps marketplaces to extend a pipeline's functionality. There are numerous third-party integrations that offer a range of services -- such as security, monitoring and alerting -- that admins can build into a CI/CD pipeline.
Azure DevOps caters to the enterprise market, so it's common to see premium-level integrations that require payment before usage. This offers the advantage of quality, less buggy software with more support. GitHub Actions does not have a paywall and the user is free to read the source code written by the plugin's author. However, it doesn't have traditional support and mainly relies on the community.
Cost is another important consideration when comparing Azure DevOps vs. GitHub Actions. Pricing for both is competitive. For GitHub, public repositories and self-hosted runners are free to use, but private repositories have a set amount of free minutes and storage, depending on the product. The GitHub pricing plan has five tiers, each with different availabilities for storage and GitHub Actions minutes:
- GitHub Free
- GitHub Pro
- GitHub Free for organizations
- GitHub Team
- GitHub Enterprise Cloud
On the lowest tier, GitHub Free, admins can store 500 MB in its repository along with 2,000 minutes a month to use Actions for free. If you need more minutes or capacity, there are varying pricing plans depending on the team and organization requirements. The highest tier, GitHub Enterprise Cloud, allows for 50 GB of storage, 50,000 minutes of Actions and comes with auditing functionality.
However, when you surpass your free period, the OS determines the per-minute rate. For example:
- Linux is $0.008 per minute
- MacOS is $0.08 per minute
- Windows is $0.016 per minute
Like GitHub Actions, Azure DevOps has free offerings as well. For its individual services:
- Azure Pipelines allows one free Microsoft-hosted CI/CD with 1,800 minutes per month. Any additional parallel job is $40 extra. It also offers one free self-hosted CI/CD with unlimited minutes per month.
- Azure Artifacts provides 2 GiB for free, then the price increases between $0.25 to $2, depending on the volume of GiB.
Users can also opt to purchase a license, Basic Plan and Basic + Test Plans, that give access to free, individual tools as well as use of additional services.