Установка и настройка 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
gitlab-runner register Please enter the gitlab-ci coordinator URL e.g. https://gitlab.com/: https://gitlab.com/ Please enter the gitlab-ci token for this runner: __masked__ Please enter the gitlab-ci description for this runner: my-runner]: my-runner Please enter the gitlab-ci tags this runner comma separated my-runner,foobar Registering runner... succeeded runner 66m_339h Please enter the executor: docker-ssh+machine, docker, docker-ssh, parallels, shell, ssh, virtualbox, docker+machine, kubernetes: docker Please enter the default Docker image e.g. ruby:2.1: alpine:latest Runner registered successfully. Feel free to start it, but if it running already the config should be automatically reloaded! |
$ 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"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
stages: - build - test build: stage: build script: - echo "this is building" - hostname - mkdir builds - touch builds/data.txt - echo "true" > builds/data.txt artifacts: paths: - builds/ test: stage: test script: - echo "this is testing" - hostname - test -f builds/data.txt - grep "true" builds/data.txt |
[/codesyntax]
Gitlab-CI конфиг для вашего собственного Gitlab раннера
Gitlab использует теги, которые были указаны при регистрации, чтобы определить, где выполняются задания, для получения дополнительной информации об этом посмотрите их документы.
Конфигурация .gitlab-ci.yml для использования вашего раннера gitlab:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
- build - test build: stage: build tags: - my-runner script: - echo "this is building" - hostname - mkdir builds - touch builds/data.txt - echo "true" > builds/data.txt artifacts: paths: - builds/ test: stage: test tags: - my-runner script: - echo "this is testing" - hostname - test -f builds/data.txt - grep "true" builds/data.txt |
Запуск и проверка Docker
Передайте конфигурацию мастеру, позвольте вашему пайплайну выполнить задания после завершения, посмотрите Docker на вашем сервере для контейнеров, на которых выполнялись задания:
1 2 3 4 5 |
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 04292a78de0b c04b8be95e1e gitlab-runner-cache.." About a minute ago Exited About a minute ago runner-xx-project-xx-concurrent-0-cache-3cxx0 49b1b3c4adf9 c04b8be95e1e gitlab-runner-cache.." About a minute ago Exited About a minute ago runner-xx-project-xx-concurrent-0-cache-6cxxa 422b23191e8c hello-world /hello" 24 minutes ago Exited 24 minutes ago wizardly_meninsky |