GitLab Documentation

Install on macOS

In the future there will be a brew package, but for now you have to manually download the macOS binary.


  1. Download the binary for your system:

    sudo curl --output /usr/local/bin/gitlab-runner

    You can download a binary for every available version as described in Bleeding Edge - download any other tagged release.

  2. Give it permissions to execute:

    sudo chmod +x /usr/local/bin/gitlab-runner

The rest of commands execute as the user who will run the Runner.

  1. Register the Runner (look into Runners documentation to learn how to obtain a token):

    gitlab-runner register
    Please enter the gitlab-ci coordinator URL (e.g. )
    Please enter the gitlab-ci token for this runner
    Please enter the gitlab-ci description for this runner
    INFO[0034] fcf5c619 Registering runner... succeeded
    Please enter the executor: shell, docker, docker-ssh, ssh?
    Please enter the Docker image (eg. ruby:2.1):
    INFO[0037] Runner registered successfully. Feel free to start it, but if it's
    running already the config should be automatically reloaded!
  2. Install the Runner as service and start it:

    cd ~
    gitlab-runner install
    gitlab-runner start

Voila! Runner is installed and will be run after a system reboot.


  1. Stop the service:

    gitlab-runner stop
  2. Download the binary to replace the Runner's executable:

    curl -o /usr/local/bin/gitlab-runner

    You can download a binary for every available version as described in Bleeding Edge - download any other tagged release.

  3. Give it permissions to execute:

    chmod +x /usr/local/bin/gitlab-runner
  4. Start the service:

    gitlab-runner start

Make sure that you read the FAQ section which describes some of the most common problems with GitLab Runner.

Limitations on macOS

Note: The service needs to be installed from the Terminal by running its GUI interface as your current user. Only then will you be able to manage the service.

Currently, the only proven to work mode for macOS is running service in user-mode.

Since the service will be running only when the user is logged in, you should enable auto-login on your OSX machine.

The service will be launched as one of LaunchAgents. By using LaunchAgents, the builds will be able to do UI interactions, making it possible to run and test on the iOS simulator.

It's worth noting that OSX also has LaunchDaemons, the services running completely in background. LaunchDaemons are run on system startup, but they don't have the same access to UI interactions as LaunchAgents. You can try to run the Runner's service as LaunchDaemon, but this mode of operation is not currently supported.

You can verify that the Runner created the service configuration file after executing the install command, by checking the ~/Library/LaunchAgents/gitlab-runner.plist file.

Upgrade the service file

In order to upgrade the LaunchAgent configuration, you need to uninstall and install the service:

gitlab-runner uninstall
gitlab-runner install
gitlab-runner start