Настройка Gitlab-CI раннера на своем собственном сервере

Thank you for reading this post, don't forget to subscribe!

Установка и настройка Gitlab раннера

Эта уста­нов­ка пред­на­зна­че­на для Linux 64bit, для дру­гих дис­три­бу­ти­вов, посмот­ри­те их документы

Уста­но­ви­те Runner:

$ wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

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

$ useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

$ gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

$ gitlab-runner start

Заре­ги­стри­руй­те раннера.
Токен Gitlab-CI досту­пен на пане­ли настро­ек CI / CD из поль­зо­ва­тель­ско­го интерфейса:
https://gitlab.com/<account>/<repo>/settings/ci_cd
Про­верь­те ста­тус и про­верь­те, вклю­че­ны ли Docker и Gitlab ран­нер при запус­ке системы:
$ gitlab-runner status
Runtime platform arch=amd64 os=linux pid=30363 revision=7f00c780 version=11.5.1
gitlab-runner: Service is running!
$ systemctl is-enabled gitlab-runner
enabled
$ systemctl is-enabled docker
enabled

Gitlab-CI конфиг для общих раннеров

Если вы хоти­те исполь­зо­вать пуб­лич­ные ран­не­ры, кото­рые пред­ла­га­ет Gitlab, кон­фи­гу­ра­ция .gitlab-ci.yml будет выгля­деть сле­ду­ю­щим образом:

[codesyntax lang="php"]

[/codesyntax]

Gitlab-CI конфиг для вашего собственного Gitlab раннера

Gitlab исполь­зу­ет теги, кото­рые были ука­за­ны при реги­стра­ции, что­бы опре­де­лить, где выпол­ня­ют­ся зада­ния, для полу­че­ния допол­ни­тель­ной инфор­ма­ции об этом посмот­ри­те их документы.

Кон­фи­гу­ра­ция .gitlab-ci.yml для исполь­зо­ва­ния ваше­го ран­не­ра gitlab:

 

 

Запуск и проверка Docker

Пере­дай­те кон­фи­гу­ра­цию масте­ру, поз­воль­те ваше­му пай­плай­ну выпол­нить зада­ния после завер­ше­ния, посмот­ри­те Docker  на вашем сер­ве­ре для кон­тей­не­ров, на кото­рых выпол­ня­лись задания:

Посколь­ку мы зна­ем, что каж­дое зада­ние выпол­ня­ет­ся в раз­ных кон­тей­не­рах, из выше­при­ве­ден­но­го выво­да вид­но, что для двух зада­ний, ука­зан­ных в нашем кон­вей­е­ре, было 2 раз­ных контейнера.