I want to use the integrated CI/CD feature of GitLab so I have to install gitlab-runner as described in the documentation.
The installation does not need to be on the same host as GitLab — it is recommended not to do so.
After installing the gitlab-runner I register a runner with GitLab in order to use it.
The easiest way to register a runner is by installing it interactively:
sudo gitlab-runner register
A complete documentation is available on the GitLab site.
I also want to build docker images with a runner so I have to register the runner in a special way (as documented).
I register runners at different levels. First I register shared runners that are available for all projects on the server (configurable in the Admin Area/Runners). Additionally I register runners for a groups (configurable in Settings CI/CD). Additionally it is possible to install a runner only for a single project. I do not need this.
To use a runner you need to set up Auto DevOps (which I do not explain here) or add a
A documentation of the
.gitlab-ci.yml format is available at the GitLab site.
Please note that by default the number of concurrent jobs on a single server is limited to 1 — even if you register multiple runners. I want to run multiple jobs concurrently so I edit the file
/etc/gitlab-runner/config.toml manually and change the value of the parameter
concurrent to a higher number (to 2 to run 2 jobs concurrently per registered runner). The correct value for a system depends on the number of cores available and how many cores are used by the builds.
Now if I check in a
.gitlab-ci.yml with your repository then a runner starts a CI build.
Next I will show how to import a project from GitHub to my new GitLab server.
- Part 1 – Installation
- Part 2 – Configure NGINX reverse proxy
- Part 3 – Configure gitlab-runner
- Part 4 – Import GitHub project
- Part 5 – Configure Docker Registry
- Part 6 – Configure NGINX for Pages