CI using Your own gitlab runner: Difference between revisions
(Created page with "=== Register your development machine as a runner for your own gitlab project === To increase speed of your CI runs you can run your own CI on your own machine for your gitlab...") |
|||
Line 67: | Line 67: | ||
By default iirc gitlab-runner will just execute one job per pipeline at a time, to increase that you will need to edit /etc/gitlab-runner/config.toml and change the 'concurrent' value to something your machine can handle. |
By default iirc gitlab-runner will just execute one job per pipeline at a time, to increase that you will need to edit /etc/gitlab-runner/config.toml and change the 'concurrent' value to something your machine can handle. |
||
To manage your runner (and CI) you need to refer to the gitlab-runner help, additional options regarding CI and managing your runner specifically for your project can be accessed from your project settings available from the sidebar e.g. https://gitlab.com/{$USER}/samba/settings/ci_cd |
|||
Credit for the content above |
Credit for most the content above should go to Samuel Cabrero |
Revision as of 09:25, 3 July 2018
Register your development machine as a runner for your own gitlab project
To increase speed of your CI runs you can run your own CI on your own machine for your gitlab samba project clone You can register your own development machine as a runner for your pipelines on your own clone of the samba gitlab repo.
These instructions are for SUSE so you will need to adjust the commands (e.g. apt-get instead of zypper etc.) as appropriate for your linux distro.
- Install docker
zypper in docker
IMPORTANT you need to ensure the device mapper storage driver is enabled, to do this you need to edit /etc/docker/daemon.json. If it does not yet exist, create it and add
{ "storage-driver": "devicemapper" }
- Install gitlab runner
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 sudo chmod +x /usr/local/bin/gitlab-runner
- Optionally, you can install and run as a service
sudo useradd --system --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
gitlab-runner will run as root, but will execute jobs as user specified by the install command. You may need to add this user to the 'docker' group. Easiest way to test if docker is working is to issue 'docker info' as the gitlab-runner 'user'
- Register your runner
# gitlab-runner register Running in system-mode. Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): https://gitlab.com Please enter the gitlab-ci token for this runner: <you can find your token in your project's Settings ==> CI/CD ==> Runners settings> Please enter the gitlab-ci description for this runner: [hostname]: <your hostname> Please enter the gitlab-ci tags for this runner (comma separated): Whether to run untagged builds [true/false]: [false]: ==> false Whether to lock the Runner to current project [true/false]: [true]: true Registering runner... succeeded runner=M6jmUiFA Please enter the executor: ssh, virtualbox, docker-ssh+machine, kubernetes, docker-ssh, parallels, shell, docker, docker+machine: docker, private, shared Please enter the default Docker image (e.g. ruby:2.1): registry.gitlab.com/samba-team/samba:latest Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
By default iirc gitlab-runner will just execute one job per pipeline at a time, to increase that you will need to edit /etc/gitlab-runner/config.toml and change the 'concurrent' value to something your machine can handle.
To manage your runner (and CI) you need to refer to the gitlab-runner help, additional options regarding CI and managing your runner specifically for your project can be accessed from your project settings available from the sidebar e.g. https://gitlab.com/{$USER}/samba/settings/ci_cd
Credit for most the content above should go to Samuel Cabrero