GitHub Actions VS Azure DevOps Pipelines
GitHub Actions | Azure DevOps Pipelines | |
---|---|---|
Number of concurrent jobs for a private project | For free plan, 20 concurrent jobs https://docs.github.com/en/actions/reference/usage-limits-billing-and-administration#usage-limits | only one job, not support concurrent (Microsoft hosted, private repo, free option) https://docs.microsoft.com/en-us/azure/devops/pipelines/licensing/concurrent-jobs?view=azure-devops&tabs=ms-hosted#how-much-do-parallel-jobs-cost |
Maximum time for each job | 6 hours for each job and 72 hours for each workflow | 1 hour |
Total build time for a month (private repo) | 2,000 minutes (33 hours, 20 minutes) https://docs.github.com/en/github/setting-up-and-managing-billing-and-payments-on-github/about-billing-for-github-actions#about-billing-for-github-actions | 1,800 minutes (30 hours) |
Deploy to App Service container with a custom image and Azure container registry | https://docs.microsoft.com/en-us/azure/app-service/deploy-container-github-action?tabs=publish-profile | https://docs.microsoft.com/en-us/azure/devops/pipelines/targets/webapp-on-container-linux?view=azure-devops&tabs=dotnet-core%2Cyaml |
Number of extensions | 7,241 Actions (Feb 18th, 2021) https://github.com/marketplace?type=actions | 1,182 Pipelines (Feb 18th, 2021) https://marketplace.visualstudio.com/search?target=AzureDevOps&category=Azure%20Pipelines&sortBy=Installs |
Code example to deploy ASP.NET Core MVC to Azure App Service (Code) | https://github.com/codesanook/codesanook-ef-note/blob/main/.github/workflows/deploy-to-app-service-code.yml | https://github.com/codesanook/codesanook-ef-note/blob/main/azure-devops-pipelines-app-service-code.yml |
Supported languages for creating an extension | Support container based action so you can use any languages. https://docs.github.com/en/actions/creating-actions/creating-a-docker-container-action | Typescript or PowerShell |
Code scanning | Built-in code scanning and can integrate with 3rd party security gates | Only integrate with 3rd party security gates |
Automation purpose | GitHub Actions can be used to automate make code reviews, branch management, and issue tracking. | Azure Pipelines are primarily used to automate CI/CD |
Conditional expression syntax | ${{ env.str == 'ABC' && env.num == 123 }} | and(eq(variables.str, 'ABC'), eq(variables.num, 123)) |
Build, Release | GitHub Packages give a good integration experience if already used GitHub repository | Azure Artifacts supports granular permissions control, auditing, and anonymous access |
Useful links
Loading comments...