Все, что происходит в каждом задании / шаге в конвейере, происходит на самом хосте бегуна и зависит от используемого вами исполнителя (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, а также на странице конвейера, поэтому он достаточно доступен.