Дочерний родительский конвейер GitLab в автономной виртуальной машине CI с gitlab-runner

# #gitlab #gitlab-ci #pipeline #gitlab-ci-runner #gitlab-pipelines

Вопрос:

Я определил отдельный конвейер GitLab в выделенном файле YAML np-pipeline.yml . Затем я вызываю его из другого ручного задания с trigger помощью функции:

 job:manual:new-np:
  trigger:
    include: .gitlab-ci/np-pipeline.yml
  when: manual
 

Я в основном следовал документам здесь: https://docs.gitlab.com/ee/ci/pipelines/pipeline_architectures.html#child—parent-pipelines

Однако я не могу запустить весь дочерний конвейер. Проблема в янтарном значке ниже на изображении с потоком. Первое задание в потоке дочернего конвейера застряло с этим сообщением:

Эта работа застряла, потому что в проекте нет назначенных для нее онлайн-бегунов. Перейдите в настройки CI проекта

Обзор потока родителей/детей:

поток родителей/детей

У меня есть автономный сервер gitlab-runner , настроенный на моей виртуальной машине, который зарегистрирован в различных проектах (репозиториях) GitLab и группах, которыми я управляю.

Когда я захожу в настройки CI репозитория (проекта), я не вижу никакого нового токена, который я мог бы использовать для регистрации другого бегуна GitLab.

Я уже зарегистрировал бегуна проекта с командой, похожей на:

 gitlab-runner register 
    --non-interactive 
    --url "https://gitlab.com/" 
    --registration-token "MY_TOKEN" 
    --description "devops runner, using MY_TOKEN token" 
    --tag-list "my_devops, MY_TOKEN" 
    --executor "shell"
 

Я также зарегистрировал несколько групповых бегунов с отдельными токенами, но когда я

  1. перейдите на страницу проекта веб-сайта GitLab
  2. затем нажмите на «Настройки» на левой панели
  3. затем нажмите «CI/CD».
  4. затем разверните раздел «Бегуны» :

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

  • Как запустить этот конвейер CI родитель/потомок в автономной виртуальной машине CI с помощью GitLab runners?
  • Я хотел бы использовать shell бегунов (без докера или чего-либо еще)
  • У меня довольно большая виртуальная машина для заданий CI, поэтому я пытаюсь понять, есть ли способ разместить несколько бегунов в одной виртуальной машине.

Отдельный дочерний конвейер для справки:

 job-np-queues:
  script: 
    - echo "DO THINGS"
  timeout: 40m

job-np-endpoint-api:
  needs: [job-np-queues]
  script: 
    - echo "DO THINGS"
  timeout: 20m

job-np-partner-api:
  needs: [job-np-queues]
  script: 
    - echo "DO THINGS"
  timeout: 20m

job-np-apisnapshot-blob:
  needs: [job-np-queues]
  script: 
    - echo "DO THINGS"
  timeout: 15m

job-integration-tests-apis:
  needs: [job-np-endpoint-api, job-np-partner-api, job-np-apisnapshot-blob]
  script: 
    - echo "DO THINGS"
  timeout: 30m
  retry:
    max: 1


job-acceptance-tests-apis:
  needs: [job-integration-tests-apis]
  script:
    - echo "DO THINGS"
  timeout: 20m
  retry:
    max: 1

 

Комментарии:

1. Есть ли у вас общие бегуны, настроенные для вашего проекта? Они должны отображаться как доступные бегуны в разделе Настройки CI/CD бегунов вместе с вашим бегуном проекта. Под заголовком «Общие бегуны» будет кнопка с надписью «Отключить общие бегуны», если она уже включена, в противном случае «Включить общие бегуны».

2. Общие бегуны не включены, потому что они из GitLab, в то время как я хотел бы использовать свои собственные бегуны (бегуны проекта или группы). Для этого проекта есть включенные групповые бегуны, рядом с ними есть зеленая точка, однако, похоже, их не подхватили. Как участники проекта, так и участники группы на самом деле являются одним и тем же gitlab-runner экземпляром в виртуальной машине с одним и тем же TOML conf.

3. Если вы перейдете в список участников для группы, нажмите кнопку «Карандаш», чтобы отредактировать его, там есть флажок, который может повлиять на желаемый результат. Первый помечен Run untagged jobs . Это будет зависеть от вашей уникальной ситуации, чтобы знать, следует ли это проверять или нет для ваших бегунов, но если он выбран, но вы не используете теги, снимите его. У бегунов для всего экземпляра есть еще один флажок, который блокирует его для проектов, которым он в настоящее время назначен, но, похоже, это не относится к групповым бегунам (возможно, и к бегунам проектов тоже). Включены ли ваши проекты для бегуна?