This content is obsolete
The instructions to install GitLab CI runner are adapted to Ubuntu 14.04 to connect to GitLab CI and run jobs when a commit is pushed to a branch. The recommended packages are installed except postfix and with ruby2.0 and ruby2.0-dev in addition:
sudo apt-get update -y sudo apt-get install -y wget curl gcc libxml2-dev libxslt-dev \ libcurl4-openssl-dev libreadline6-dev libc6-dev \ libssl-dev make build-essential zlib1g-dev openssh-server \ git-core libyaml-dev libpq-dev libicu-dev \ ruby2.0 ruby2.0-dev
Ruby2.0 is made the default ruby interpreter
sudo rm /usr/bin/ruby /usr/bin/gem /usr/bin/irb /usr/bin/rdoc /usr/bin/erb sudo ln -s /usr/bin/ruby2.0 /usr/bin/ruby sudo ln -s /usr/bin/gem2.0 /usr/bin/gem sudo ln -s /usr/bin/irb2.0 /usr/bin/irb sudo ln -s /usr/bin/rdoc2.0 /usr/bin/rdoc sudo ln -s /usr/bin/erb2.0 /usr/bin/erb sudo gem update --system sudo gem pristine --all
The bundler gem is installed
sudo gem install bundler
and the GitLab CI runner user created
sudo adduser --disabled-login --gecos 'GitLab CI Runner' gitlab_ci_runner
The GitLab CI runner code is installed in the home of the corresponding user with:
sudo su gitlab_ci_runner cd ~/ git clone https://gitlab.com/gitlab-org/gitlab-ci-runner.git cd gitlab-ci-runner bundle install --deployment
The CI token is retrieved from the GitLab CI pannel
and used to grant access to the runner:
CI_SERVER_URL=http://workbench.dachary.org:8080 \ REGISTRATION_TOKEN=778b1d4856f26da392a bundle exec ./bin/setup
The daemon is started from root with:
su gitlab_ci_runner -c 'cd $HOME/gitlab-ci-runner ; bundle exec ./bin/runner'
The GitLab CI interface shows the runner as registered:
Assuming all the above was done from within a docker container, it can be persisted as an image with
docker commit b504ab6ba122 gitlab-runner
and used to multiply the runners with:
$ docker run --rm -t gitlab-runner \ su gitlab_ci_runner -c 'cd $HOME/gitlab-ci-runner ; \ CI_SERVER_URL=http://workbench.dachary.org:8080 \ REGISTRATION_TOKEN=b14852619da392a \ bundle exec ./bin/setup ; bundle exec ./bin/runner' Registering runner with registration token: 2619da3, url: http://workbench.dachary.org:8080. Runner token: 35f9d40f2e072487870f987 Runner registered successfully. Feel free to start it! * Gitlab CI Runner started * Waiting for builds 2014-12-06 17:18:26 +0000 | Checking for builds...nothing 2014-12-06 17:20:27 +0000 | Checking for builds...received 2014-12-06 17:20:27 +0000 | Starting new build 6... 2014-12-06 17:20:27 +0000 | Build 6 started. 2014-12-06 17:20:32 +0000 | Submitting build 6 to coordinator...ok 2014-12-06 17:20:33 +0000 | Completed build 6, success. 2014-12-06 17:20:33 +0000 | Submitting build 6 to coordinator...aborted 2014-12-06 17:20:38 +0000 | Checking for builds...nothing ...
When the container is stopped, the runner must be manually removed from the GitLab CI. Projects in the GitLab CI will be confused by the disapearance of the runner and must be removed and re-added otherwise no job will get scheduled.
It is easier to install on Fedora 20
sudo gem install bundler sudo useradd -c 'GitLab CI Runner' gitlab_ci_runner export PATH=/usr/local/bin:$PATH cd ~/ git clone https://gitlab.com/gitlab-org/gitlab-ci-runner.git cd gitlab-ci-runner bundle install --deployment CI_SERVER_URL=http://workbench.dachary.org:8080 \ REGISTRATION_TOKEN=XXXXX bundle exec ./bin/setup