О бегунах Gitlab CI - PullRequest
       16

О бегунах Gitlab CI

0 голосов
/ 11 декабря 2019

Я новичок в Gitlab CI, и я очарован этим. Мне уже удалось заставить конвейеры работать даже с использованием док-контейнеров, поэтому я знаком с процессом настройки заданий и артефактов. Я просто хочу сейчас понять, как это работает. Мои вопросы о следующем:

Бегуны

Где на самом деле все происходит? Я имею в виду, на каком компьютере запущены мои сборки и исполняемые файлы? Я понимаю, что у Gitlab есть собственные общие бегуны, доступные для пользователей. Означает ли это, что если общий бегун забирает мои задания, будет ли он работать там, где эти бегуны размещены? Если я зарегистрирую своего собственного бегуна на своем ноутбуке и использую этот конкретный бегун, мои сборки и двоичные файлы будут запускаться на моем компьютере?

Артефакты

Для запуска/ test code, нам нужны двоичные файлы, которые на этапе сборки воспринимаются как артефакты. Для части сборки, если я использую cmake, например, в части сценария файла CI.yml, я создаю каталог сборки и вызываю cmake .. и так далее. Как только моя работа будет успешной, если я захочу получить бинарный файл, я должен пойти в gitlab и получить его сам. Итак, мой вопрос, где все сохраняется? Я заметил, что бегун, в рамках моего проекта, создает что-то вроде refs / pipeline /, но где это на самом деле? Как я могу получить эти файлы и новые каталоги на моем ноутбуке

Рабочее пространство Практически, где все происходит? бегуны, казнь, артефакты?

Спасибо за потраченное время

1 Ответ

1 голос
/ 11 декабря 2019

Все, что происходит в каждом задании / шаге в конвейере, происходит на самом хосте бегуна и зависит от используемого вами исполнителя (shell, docker и т. Д.) Или напрямую от сервера Gitlab.

Если вы используете gitlab.com, у них есть несколько общих участников, которых поддерживает команда Gitlab, и вы можете использовать их для своих проектов, но так как они доступны всем на gitlab.com,может пройти некоторое время, прежде чем ваши задания будут запущены. Однако, независимо от того, используете ли вы самостоятельно хостинг или используете gitlab.com, вы можете создавать свои собственные бегуны, специфичные для вашего проекта.

Если вы используете исполнителя shell во время выполнения заданияВы могли видеть файлы в файловой системе где-то, но они очищаются после завершения этой работы. Он не предназначен для доступа к файловой системе во время выполнения задания. Вот для чего предназначен скрипт задания.

Если вы используете docker executor, служба gitlab-runner запустит экземпляр докера из образа, который вы указали в .gitlab-ci.yml (или используйте значение по умолчанию, котороенастраивается). Затем задание запускается внутри этого экземпляра докера и удаляется сразу же после его завершения.

Вы можете добавлять своих бегунов куда угодно - AWS, запасной компьютер, даже ваш ноутбук, и задания будут выбраны. по любому из них. Вы также можете отключить общих бегунов и принудительно запускать их на одном из ваших бегунов.

В тех случаях, когда вам необходим артефакт после этапа сборки / подготовки, он создается на бегуне как частьзадание, как указано выше, но затем бегун автоматически загружает артефакт на сервер gitlab (или в другую службу, которая реализует протокол S3, например AWS S3 или Minio ). Если вы не используете S3 / minio, он будет доступен только через интерфейс пользовательского интерфейса gitlab или через API. Однако в пользовательском интерфейсе он будет отображаться на любых связанных MR, а также на странице конвейера, поэтому он достаточно доступен.

...