CI/CD - Setup

GitLab (fewer requirements)
Minimum hardware requirements: 4 vCPU and 4 GB RAM support up to 500 users. No specific recommendation for disk size.
In GitLab, a user has to generate an access token, provision a runner server, install runner software on it and register it vis-a-vis GitLab using the token. There are a number of executors, like shell, Docker, Kubernetes. Runner installation on K8S is supported by GitLab’s web UI. In particular one can create a cluster on Amazon EKS or Google GKE and install a runner on it, all from the GitLab’s web UI.
Supporting up to 3000 users, requires 8 vCPUs, 48 GB RAM, 300 GB attached storage, 200 GB root storage.
To enable GitHub Actions on GHES, one must have access to external blob storage. Only Azure Blob storage, AWS S3 or S3-compatible MinIO Gateway for NAS are suitable. GCP storage won't work. Runner setup is a little simpler than in GitLab: all setup commands are provided on an instance/organization/project’s page (depending on the runner’s scope) and the access token is generated automatically. There is third-party software which run GitHub Actions on K8S (e.g. here).