This page details and compares available CI-as-a-Service (CISaaS) platforms for open source communities. Though there is no free SaaS provider for Jenkins, it is included in the comparison as that is what most LFN projects are currently using.
Notes on Systems Not Included
There are several other CI SaaS platforms out there not included in this comparison for various reasons.
This table details the support for CI systems to report back the status of builds to SCM providers.
Note: a similar approach could be used for other SCMs provided there is an API for updating CI status
Builds, agents, runners: these are all different names providers use to refer to the compute machine CI/CD builds run on.
|Builder Size||Max Job Time||ARM Builders||External Builders||Platform Support|
|CircleCI||2 vCPUs, 4-8 Gb RAM, larger sizes||5 Hours||Yes/No||All|
|Azure Pipelines||2 vCPUs, 7 Gb RAM||6 Hours||Yes||All|
|Github Actions||2 vCPUs, 7 Gb RAM||6 Hours||Yes||All|
|GitLab-CI||1 vCPU, 3.75 Gb RAM||3 Hours||Yes||Linux, Windows|
Platform Support 'All' means support for Linux, OSX, Windows.
External Builders 'Yes/No' means external hardware is supported in the self-hosted (non SaaS) version.
Details on 'free for open source' plans and pricing models for communities who may exceed those limits.
Minutes (per Month)
Gitlab-CI: Open source projects need to apply to the "Gold" level to bump the minute cap.
This is not an exhaustive list of features across all the projects but a subset that maybe relevant to LFN projects.
Bring Your Own
Test Result Reports
Cross Project Pipelines
SSH Debug Support
Azure Pipelines: Container Register is not free; Cross Project Pipelines provide no indication in the UI
Registry hosted by the provider to store container build images
Support for top package formats (Ex: Maven, NPM, Helm)
External machines (VMs, hardware, containers) can be connected to the platform
Test Result Reporting
Insights and statistics for test results
Reduced CI development time by supporting verifying CI configuration and builds locally
Support for caching packages or files between builds (Ex: Maven, PyPI, NPM)
Reduces job configuration needed to build the combination of multiple versions across multiple platforms
Cross Project Pipelines
Dependent builds can be easily traced across projects (not just within a project)
Pausing the execution of a build to login and debug build failures