GitLab (fewer requirements)
GitLab (because of the ability to re-run a single job) but also GitHub (because of ability to trigger on other events)
Minimum hardware requirements: 4 vCPU and 4 GB RAM support up to 500 users. No specific recommendation for disk size.
In GitLab, a CI/CD pipeline is configured using a YAML file. A GitLab pipeline’s major building blocks are stages and jobs. A stage consists of jobs, which run in parallel. Stages are executed sequentially: if all jobs in a stage succeed, the pipeline moves on to the next stage. Recently (14.2), GitLab also introduced stageless pipelines, which use the same needs keyword as GitHub. A developer can use the extends keyword to reuse configuration sections.
Supporting up to 3000 users, requires 8 vCPUs, 48 GB RAM, 300 GB attached storage, 200 GB root storage.
In GitHub uses the term "workflow" instead of “pipeline”. A workflow is also configured using a YAML file, with syntax quite similar to that of GitLab. In GitHub, there are no stages, but a similar functionality is achieved using the needs keyword. Because of the lack of extends, users need to cut and paste code, making their configuration files longer and less maintainable. GitHub Actions can be triggered on non-code events, such as creation of new issues.