GitHub Actions CI/CD - Introduction
For a long time GitHub has been the Nr. 1 choice for hosting Open Source projects. It offered free project hosting for public repos and had competitive pricing for private projects. Many years this has been the main reason for people using GitHub.
It missed out though on offering any solution for peoples CI (Continuous integration) and CD (Continuous delivery) needs.
Luckily in October 2018 (short before announcing the acquisition via Microsoft) this changed with the introduction of GitHub Actions.
GitHub actions is great, as it is offered for free with a great build quota which should be enough for most open source projects, and smaller projects. (It comes with 2000 free build minutes per month (September 2020))
Also offering deep integration into GitHub.com, and many official and 3rd party built plugins (actions) via the GitHub Actions Marketplace.
The only requirement to get started is a GitHub account and a project you want to build.
Things you should know before getting started:
- Unlike Jenkins which usually runs builds in the same environment (unless configured differently, it works similar to comparable services like Travis. Every build is executed in a clean (docker) container and will checkout the projects and install required dependencies.
- There's a huge amount of actions you can use to build the project, but only a small amount is from GitHub officially, or from verified sources. 3rd party actions should be reviewed so they are secure.
- Currently only one set of runners are offered, which are not the strongest machines (on the roadmap)
- YML can be tricky to debug (GitHub is working on improving debug support of Actions)
- There's no report UI which could visualize HTML test reports, benchmarks, ...