Описать концепцию CI в среде Gitlab можно так:
- В любом из проектов в корень репозитория можно положить файл
.gitlab-ci.yml
, описывающий процессы CI. - В нем определяются "работы", представляющие собой наборы комманд, выполняемых из коммандной строки, которые будут выполняться на этапах сборки/тестирования/деплоя.
- После каждого push'а в репозиторий "работы" выполняются на машинах, называемых runner'ами.
- Runner'ами могут выступать виртуальные машины, docker-контейнеры и даже сама машина (через bash или powershell). Runner'ы могут располагаться где угодно. Главное, чтобы у них был доступ в интернет.
- Чтобы превратить машину в runner ее необходимо подготовить. После чего на ней можно будет [регистрировать](https://gist.github.com/vgoma/84691dceaa5