If you’re using GitLab SaaS (GitLab Cloud), you have multiple runner options to execute your CI/CD jobs. Each runner source gives you different levels of control, performance, and cost efficiency.
Here’s a complete and up-to-date list of runner sources available to you on GitLab Cloud (GitLab.com) as of version 18.0 (May 2025):
✅ Available Runner Sources in GitLab Cloud
Runner Source | Description | Use Case | Availability |
---|---|---|---|
GitLab Shared Runners | Provided and maintained by GitLab. Run on GitLab-managed infrastructure (auto-scaled). | Quick start, no setup needed | ✅ Enabled by default |
Project-Specific Runners | Installed and registered for a single project only. | Dedicated pipelines for sensitive repos | ✅ User-managed |
Group Runners | Registered to a group and available to all projects inside the group. | Shared infra across multiple related projects | ✅ User-managed |
Self-Hosted Runners (Custom) | Installed on your own infrastructure (Linux, macOS, Windows, Docker, Kubernetes, etc.). | Full control over environment & cost | ✅ GitLab SaaS-compatible |
GitLab Kubernetes Executor (Auto DevOps) | Auto-provisioned runner inside a connected K8s cluster (via GitLab Agent or legacy cert). | Cloud-native CI/CD with GitOps-style delivery | ✅ Optional setup |
GitLab macOS Runners (M1/M2) (beta) | Apple Silicon runners for building macOS/iOS apps (Xcode). Currently in Beta for SaaS. | iOS/macOS mobile CI/CD | 🧪 Limited Beta |
GitLab Windows Runners (hosted or self) | Use Windows executor to build/test .NET, Windows apps. | Windows-native software pipelines | ✅ Self-hosted or BYO |
GitLab GPU Runners (beta) | GPU-backed runners for AI/ML workloads (uses NVIDIA CUDA). | Model training and GPU-based data pipelines | 🧪 Ultimate / Limited Beta |
🔧 Summary of Executors by Runner Type
Executor Type | Compatible with GitLab Cloud? | Platform Examples |
---|---|---|
shell | ✅ (self-hosted only) | Local VMs, bare metal |
docker | ✅ | Docker-in-Docker setups |
docker+machine | ✅ (with autoscaling) | AWS/GCP dynamic runners |
kubernetes | ✅ | GKE, EKS, AKS |
custom | ✅ | Any custom automation |
ssh | ✅ | Remote Linux VMs |
virtualbox | ❌ GitLab SaaS not supported | Only works self-managed |
parallels | ❌ Deprecated | |
shell-windows | ✅ | Windows self-hosted |
📌 Special GitLab SaaS-Hosted Runners
Runner Type | Language Support | Notes |
---|---|---|
Linux Shared Runners | Default Docker executor (Node, Python, etc.) | 400 CI minutes/month for Free tier |
macOS Runners (beta) | Swift, Xcode, iOS | Available via GitLab-hosted pool |
GPU Runners (beta) | CUDA, TensorFlow, PyTorch | Ultimate SaaS, usage billed separately |
Windows Runners | .NET Core, PowerShell | Use your own runner for Windows |
🎯 When to Use What
Use Case | Recommended Runner |
---|---|
Quick setup for any project | GitLab Shared Runners |
Secure or private pipelines (sensitive data) | Project/Group-specific runners |
Complex environments (Terraform, AI/ML) | Self-hosted Docker or Kubernetes |
macOS/iOS CI/CD | GitLab macOS Runners (Beta) |
Windows CI/CD | Self-hosted Windows runner |
GPU training / AI workloads | GPU runners (Ultimate only) |
✅ How to View/Add Runners in GitLab Cloud
- Project > Settings > CI/CD > Runners
- Shows shared runners, and allows adding project-specific ones
- Group > Settings > CI/CD > Runners
- For group-level runners
- Admin Runners Page (for instance-level visibility, GitLab self-managed only)
As of GitLab 18.x, GitLab supports several types of runners to execute CI/CD jobs. Here’s a clear and updated breakdown:
🏃 Types of GitLab Runners in GitLab 18.x
1. Shared Runners
- Scope: Available to all projects in an instance or group.
- Managed by: GitLab instance admin (self-hosted or GitLab.com).
- Use case: Ideal for teams that don’t want to manage infrastructure for builds.
- Example: GitLab.com provides autoscaling shared runners using Docker Machine.
✅ Pros:
- Easy to set up
- Great for small teams and quick pipelines
⚠️ Cons: - Queues can be long on GitLab.com during peak usage
2. Group Runners
- Scope: Available to all projects within a group.
- Managed by: Group owners
- Use case: For teams managing multiple related projects needing the same CI resources.
✅ Pros:
- Centralized control at group level
- Avoids redundancy for project-specific runners
3. Project-specific Runners
- Scope: Tied to a single project only.
- Managed by: Project maintainers/owners
- Use case: When a project needs specialized tools or secure execution.
✅ Pros:
- Full control
- Secure, isolated builds
⚠️ Cons: - More setup and maintenance overhead
🔧 Execution Environments (Runners’ Executor Types)
Each runner (regardless of shared/group/project) uses an executor to determine how jobs are run:
Executor | Description |
---|---|
shell | Uses host shell (e.g., Bash); minimal setup |
docker | Spawns Docker containers to run jobs (very popular) |
docker+machine | Scales runners dynamically using Docker Machine |
kubernetes | Runs jobs as pods inside a Kubernetes cluster |
ssh | Executes jobs on a remote server over SSH |
custom | Define your own job executor flow |
virtualbox (deprecated) | Used VMs (not commonly used now) |
parallels (macOS only) | Used Parallels for macOS virtualized runners |
🧠 Special Note on GitLab SaaS vs Self-Managed
Runner Type | GitLab.com (SaaS) | Self-Managed GitLab |
---|---|---|
Shared Runners | ✅ Available | ✅ Can be configured |
Group Runners | 🚫 Not available | ✅ Available |
Project Runners | ✅ Available | ✅ Available |
GitLab.com (SaaS) does not support Group-level runners for security/resource isolation reasons.
🔄 Registering a Runner
To register a runner in GitLab 18.0, follow these steps:GitLab Docs
- Install GitLab Runner: Ensure GitLab Runner is installed on your desired host machine.
- Obtain a Registration Token:
- Instance Runner: Available in the Admin Area under CI/CD > Runners.
- Group Runner: Found in the group’s Settings > CI/CD > Runners section.
- Project Runner: Located in the project’s Settings > CI/CD > Runners section.
- Register the Runner:
- Run the following command and follow the prompts:about.gitlab.com+6GitLab Docs+6GitLab Forum+6GitLab Docs+2GitLab Docs+2GitLab Docs+2GitLab Docs+1Exoscale+1 bashCopyEdit
gitlab-runner register
- Provide the GitLab instance URL, registration token, description, tags, and executor type as prompted.GitLab Docs
- Run the following command and follow the prompts:about.gitlab.com+6GitLab Docs+6GitLab Forum+6GitLab Docs+2GitLab Docs+2GitLab Docs+2GitLab Docs+1Exoscale+1 bashCopyEdit
After successful registration, the runner will appear in the GitLab UI under the appropriate scope (instance, group, or project). GitLab Docs
I’m a DevOps/SRE/DevSecOps/Cloud Expert passionate about sharing knowledge and experiences. I have worked at Cotocus. I share tech blog at DevOps School, travel stories at Holiday Landmark, stock market tips at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow , and SEO strategies at Wizbrand.
Do you want to learn Quantum Computing?
Please find my social handles as below;
Rajesh Kumar Personal Website
Rajesh Kumar at YOUTUBE
Rajesh Kumar at INSTAGRAM
Rajesh Kumar at X
Rajesh Kumar at FACEBOOK
Rajesh Kumar at LINKEDIN
Rajesh Kumar at WIZBRAND