GitLab

You can use Buildkite to run builds on GitLab commits.

GitLab repositories

If you host your repositories on gitlab.com enter your gitlab.com repository URL when you create your pipeline in Buildkite (for example, git@gitlab.com:your/repo.git) and follow the instructions provided on that page to set up webhooks.

GitLab Self-Managed repositories

You can also use repositories from your own self-managed GitLab service but you'll need to connect it to Buildkite first.

The earliest supported version of GitLab is 7.4.

  1. Open your Buildkite organization's Settings and choose Repository Providers.
  2. Select GitLab Self-Managed.
  3. Enter the URL to your GitLab installation (for example, https://git.example.org).
  4. You can optionally specify a list of IP addresses to restrict where builds can be triggered from. This field accepts a space separated list of networks in CIDR notation.

    Screen of Buildkite Organization GitLab Settings
  5. Select Save Settings before leaving this page.

  6. Create a new pipeline on Buildkite using your GitLab repository's URL (for example, git@git.mycompany.com:your/repo.git) and follow the instructions on the pipeline creation page.

Branch configuration and settings

You can edit the version control provider settings for each pipeline from the pipeline's settings page. Go to Pipelines > your specific pipeline > Settings > your Git service provider.

If you need more control over your pipeline configuration, add a pipeline.yml to your repository. Then you can use conditionals and branch filtering to configure your pipeline.

Using one repository in multiple pipelines and organizations

If you want to use the same repository in multiple pipelines (including pipelines in different Buildkite organizations), you need to configure a separate webhook for each pipeline. Follow the webhook setup instructions in the Buildkite UI. Buildkite shows you these instructions when you create the pipeline, but you can also find them in Pipeline > your specific pipeline > Settings > your Git service provider > your Git service provider's Setup Instructions.

Build skipping

You may not always want to rebuild on every commit, or branch. You can configure Buildkite to ignore individual commits or branches, or to skip builds under certain conditions.

Commit statuses

Buildkite Pipelines can update commit statuses in GitLab. You can then see the status of your builds from your GitLab.com commits and merge requests with direct links back to your Buildkite Pipelines build.

For GitLab.com, connect your Buildkite and GitLab user accounts by going to your Buildkite user account's Personal Settings from the global navigation > Connected Apps page:

Screen of Buildkite User Connected Apps with GitLab.com connected

Next, in your Buildkite organization, go to Pipelines > your specific pipeline > Settings > GitLab, and make sure the Update commit statuses checkbox is selected:

Screen of Buildkite User Connected Apps with GitLab.com connected

For a self-managed GitLab service, ensure you have configured API authentication for your Buildkite organization's GitLab repository provider. To do this, select Settings from the global navigation > Repository Providers > GitLab Self-Managed page:

Screen of Buildkite GitLab repository provider settings page with authentication configured

Then update your pipeline's repository settings as above.