GitLab использует «бегунов» для выполнения заданий CI.Бегунки устанавливаются везде, где вы хотите запустить задание CI, поэтому, если вы хотите работать на нескольких архитектурах, вам нужно будет установить бегунки в системах для каждой архитектуры.Документацию по установке бегунка можно найти здесь:
https://docs.gitlab.com/runner/install/index.html
Для заданий на основе Linux обычно используется Docker для выполнения заданий - это не дает архитектурной гибкости, но позволяетВы тестируете на разных вкусах и с разным программным обеспечением, используя контейнеризацию.Для других архитектур вам может потребоваться установить бегуны самостоятельно или использовать совместно используемые бегуны других пользователей.
При установке программного обеспечения бегунка необходимо выполнить несколько шагов:
youу вас есть возможность связать каждого участника с вашим проектом GitLab, что означает, что он будет отображаться в списке участников в Project> Settings> CI / CD.
у вас будет возможность назначить«метки» бегунам.Теги могут использоваться, чтобы помочь идентифицировать бегуна или группу бегунов по произвольному имени (например, вы можете добавить «Windows x86_64» в качестве тега или теги «Windows» и «x86_64»).Эти теги можно использовать в заданиях для выбора бегуна.
После установки бегунов вы можете редактировать файл .gitlab-ci.yml
.
Файлы GI GitLab CIразбить на «этапы».Задания на каждом этапе могут выполняться параллельно.Имена этапов определены в верхней части файла.
stages:
- build
- deploy
Каждое задание CI можно прикрепить к этапу с помощью записи stage:
:
build job:
stage: build
script:
- echo "I am a build stage job"
В вашем случае выпотребуется создать несколько заданий для каждой архитектуры, для которой вы хотите построить.Присоединение их к одному и тому же этапу позволит им работать параллельно.
Для контроля того, где выполняется каждое задание, у вас есть два основных механизма:
Теги - теги позволяют вамприкрепить работу к метке бегуна.Вы можете указать несколько тегов, используя запись tags:
, которая формирует список AND (например, тег win
AND x86_64
).Когда это задание запускается, GitLab найдет бегуна со всеми необходимыми тегами и запустит его там.
Изображение - при запуске в Docker / Kubernetes вы можете указать используемый образ докерадля бегуна.Чтобы использовать образ докера, сначала нужно указать бегун, который может запускать образы докера (например, бегун docker-in-docker или kubernetes), который, например, может быть помечен docker
или kubernetes
.Затем вы используете запись image:
для указания образа докера.
Вот пример, показывающий и теги, и изображения:
build win x86_64:
stage: build
tags:
- win
- x86_64
script:
- echo "I am a build stage job for win x86_64"
build win 32:
stage: build
tags:
- win
- 32-bit
script:
- echo "I am a build stage job for win 32"
build debian:
stage: build
tags:
- docker
image: debian:stretch
script:
- echo "I am a build stage job for debian, running on docker using debian:stretch image"
В настоящее время поддержка не поддерживаетсядинамические задания или выполнение одного задания на нескольких участниках / архитектурах, так что это требует немного ручного труда.С другой стороны, это облегчает чтение файлов GitLab CI и позволяет легко увидеть, что будет выполняться во время выполнения CI.