GitLab Runner: Getting started

Connect your Stackhero GitLab Runner to GitLab.com or a self-hosted GitLab and run your first pipeline

👋 Welcome to the Stackhero documentation!

Stackhero offers you an easy-to-use GitLab Runner cloud solution, designed to efficiently run your GitLab CI/CD jobs. Here’s what you can benefit from:

  • Unlimited CI/CD minutes: there’s no per-minute billing, so your pipelines can run whenever you need them.
  • Concurrent jobs: run multiple jobs in parallel to speed up your entire pipeline.
  • The Docker executor with Docker-in-Docker support: simplify building and pushing your container images.
  • Compatible with GitLab.com as well as any self-managed GitLab instance.
  • A private, dedicated VM powered by fast NVMe/SSD disks for reliable, consistent builds.
  • Available in both 🇪🇺 Europe and 🇺🇸 USA regions.

Save time: connect your first GitLab Runner and start running pipelines in just a few minutes!

A GitLab Runner is the agent responsible for executing your GitLab CI/CD jobs. Each time a pipeline is triggered, the runner picks up each job, runs it inside a clean Docker container, and then reports the results back to GitLab.

With Stackhero, your runner operates on a private, dedicated VM. There are no per-minute charges or usage quotas, and your CI/CD minutes are unlimited. Depending on your plan, your runner can handle dozens of concurrent jobs at the same time.

This guide explains how to connect your Stackhero runner to GitLab in just a few minutes.

From your Stackhero dashboard, you can create a new GitLab Runner service and select the plan that suits your requirements. The plan determines your available CPU, RAM, and the number of concurrent jobs (which corresponds to the GitLab Runner concurrent setting, i.e. the number of jobs that can run in parallel).

Your runner will be operational in about 2 minutes.

Your runner connects to GitLab using a runner authentication token. You will generate this token in GitLab, where you will also define the runner's scope:

  • Project runner: Open your project, then go to Settings > CI/CD > Runners > New project runner.
  • Group runner: Open your group, then go to Settings > CI/CD > Runners > New group runner.
  • Instance runner (for self-hosted GitLab only): Go to the Admin area > CI/CD > Runners > New instance runner.

When creating the runner, you can:

  • Add tags (such as docker or stackhero) to help you target this runner from your jobs.
  • Allow it to run untagged jobs if you want it to pick up all jobs.

GitLab will provide a runner authentication token starting with glrt-. Make sure to keep this token secure, as it is what your runner uses to authenticate.

The old registration token method is deprecated. Please use the runner authentication token (glrt-...) created alongside the runner, as described above.

Return to your Stackhero dashboard, open your GitLab Runner service configuration, and enter the following information:

  • Your GitLab URL: Use https://gitlab.com for GitLab.com, or the URL of your self-hosted GitLab instance (for example, if you are running GitLab on Stackhero, this might be https://git.your-company.com).
  • The runner authentication token (glrt-...) obtained in Step 2.
  • The number of concurrent jobs you wish to allow.

Once you save your configuration, your runner will automatically connect to GitLab and appear as online on the Runners page where you created it.

To get started, add a .gitlab-ci.yml file at the root of your repository:

stages:
  - build
  - test

build:
  stage: build
  image: node:22
  script:
    - npm ci
    - npm run build

test:
  stage: test
  image: node:22
  script:
    - npm test

Commit and push your changes. GitLab will start a pipeline, and your Stackhero runner will execute the jobs. If you added tags when creating the runner, you can target them in your jobs as follows:

build:
  stage: build
  tags:
    - stackhero
  image: node:22
  script:
    - npm ci
    - npm run build

That's it. Your pipelines are now running on your own dedicated runner, with unlimited build minutes.

Would you like to build and push Docker images from your pipelines? Continue with Building Docker images.