This repository is a mirror for automated DockerHub builds. Please go to:
Go Makefile Shell Ruby
Latest commit a3d5829 Sep 1, 2016
Nick Thomas
Nick Thomas committed Sep 1, 2016 Merge branch 'patch-6' into 'master'
fix typo in

See merge request !294
Failed to load latest commit information.
Godeps Use default `.kube/config` Aug 22, 2016
apps/gitlab-runner-helper Refactor common/version Jul 12, 2016
ci Don't install minikube in ci Aug 19, 2016
commands Merge branch 'feature/autodetect-ci-in-url' into 'master' Aug 30, 2016
common Merge remote-tracking branch 'origin/master' into kubernetes-support Aug 22, 2016
dockerfiles Merge branch 'master' of… Aug 29, 2016
docs fix typo in Sep 1, 2016
executors Defer removing failed containers until Cleanup() Aug 31, 2016
helpers Merge remote-tracking branch 'origin/master' into kubernetes-support Aug 22, 2016
network Replace regexp with strings.HasSuffix Aug 30, 2016
packaging Merge branch 'patch-2' into 'master' Apr 4, 2016
shells Fix broken script generation for artifacts Jul 15, 2016
tests Added Vagrant files for test images Jul 14, 2016
vendor Use default `.kube/config` Aug 22, 2016
.dockerignore Updated develop Dockerfile Oct 6, 2015
.env Multi runner can run jobs on Heroku Mar 10, 2015
.gitignore Added Vagrant files for test images Jul 14, 2016
.gitlab-ci.yml Use docker:dind with overlay Aug 18, 2016
.godir Change to… May 3, 2015 Bump v1.6.0 [ci skip] Aug 22, 2016 Fix links to CLA's Aug 18, 2016
Dockerfile Update go lang version for Docker build Apr 8, 2016
LICENSE Change license to MIT [ci skip] Feb 18, 2016
Makefile Merge remote-tracking branch 'origin/master' into kubernetes-support Aug 22, 2016
Procfile Multi runner can run jobs on Heroku Mar 10, 2015 adding and linking to CLA's in gitlab-ce Aug 17, 2016
VERSION Bump v1.6.0 [ci skip] Aug 22, 2016
config.toml.example Discover the registry from the image name Jul 29, 2015 Upload artefacts to S3 Apr 19, 2015
main.go Rebase onto latest gitlab-runner. Rewrite more cleanly Aug 16, 2016

GitLab Runner

This is the repository of the official GitLab Runner written in Go. It runs tests and sends the results to GitLab. GitLab CI is the open-source continuous integration service included with GitLab that coordinates the testing. The old name of this project was GitLab CI Multi Runner but please use "GitLab Runner" (without CI) from now on.

Build Status


Contributions are welcome, see for more details.

Closing issues and merge requests

GitLab is growing very fast and we have a limited resources to deal with reported issues and merge requests opened by the community volunteers. We appreciate all the contributions coming from our community. But to help all of us with issues and merge requests management we need to create some closing policy.

If an issue or merge request has a ~"waiting for feedback" label and the response from the reporter has not been received for 14 days, we can close it using the following response template:

We haven't received an update for more than 14 days so we will assume that the
problem is fixed or is no longer valid. If you still experience the same problem
try upgrading to the latest version. If the issue persists, reopen this issue
or merge request with the relevant information.


None: GitLab Runner is run as a single binary.

This project is designed to run on the Linux, OS X, and Windows operating systems. Other operating systems will probably work as long as you can compile a Go binary on them.

If you want to use Docker make sure that you have 1.5.0 at least installed.


  • Allows to run:
  • multiple jobs concurrently
  • use multiple tokens with multiple server (even per-project)
  • limit number of concurrent jobs per-token
  • Jobs can be run:
  • locally
  • using Docker container
  • using Docker container and executing job over SSH
  • using Docker container with autoscaling on different clouds and virtualization hypervisors
  • connecting to remote SSH server
  • Is written in Go and distributed as single binary without any other requirements
  • Supports Bash, Windows Batch and Windows PowerShell
  • Works on Ubuntu, Debian, OS X and Windows (and anywhere you can run Docker)
  • Allows to customize job running environment
  • Automatic configuration reload without restart
  • Easy to use setup with support for docker, docker-ssh, parallels or ssh running environments
  • Enables caching of Docker containers
  • Easy installation as service for Linux, OSX and Windows

Compatibility chart

Supported features by different executors:

Executor Shell Docker Docker-SSH VirtualBox Parallels SSH
Secure Variables
GitLab Runner Exec command no no no
gitlab-ci.yml: image no no no no
gitlab-ci.yml: services no no no no
gitlab-ci.yml: cache
gitlab-ci.yml: artifacts
Absolute paths: caching, artifacts no no no no no no
Passing artifacts between stages

Supported systems by different shells:

Shells Bash Windows Batch PowerShell
Windows ✓ (default)
Linux ✓ (default) no no
OSX ✓ (default) no no
FreeBSD ✓ (default) no no

Install GitLab Runner

Use GitLab Runner

Select executor


Advanced Configuration

Extra projects?

If you want to add another project, token or image simply RE-RUN SETUP. You don't have to re-run the runner. It will automatically reload configuration once it changes.


Visit Changelog to view recent changes.

Version 0.5.0

Version 0.5.0 introduces many security related changes. One of such changes is the different location of config.toml. Previously (prior 0.5.0) config was read from current working directory. Currently, when gitlab-runner is executed by root or with sudo config is read from /etc/gitlab-runner/config.toml. If gitlab-runner is executed by non-root user, the config is read from $HOME/.gitlab-runner/config.toml. However, this doesn't apply to Windows where config is still read from current working directory, but this most likely will change in future.

The config file is automatically migrated when GitLab Runner was installed from GitLab's repository. For manual installations the config needs to be moved by hand.

The future

  • Please see the GitLab Direction page.
  • Feel free submit issues with feature proposals on the issue tracker.


Kamil Trzciński


This code is distributed under the MIT license, see the LICENSE file.