как разделить «каталог репозитория сборки» между заданиями в конфигурации с несколькими бегунами gitlab?

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

      /etc/gitlab-runner/config.toml
        concurrent = 4
        check_interval = 0
        executor = shell

Все задания выполняются на разных стадиях друг друга.

.gitlab-ci.yml

      stages:
  - build-prod-stage
  - deploy-prod-stage

BUILD_PROD_JOB:
  stage: build-prod-stage
  variables:    
    GIT_CLEAN_FLAGS: none      
  script:
    - xxxxxx
    - xxxxx

DEPLOY_PROD_JOB:
  variables:
    GIT_CLEAN_FLAGS: none 
  stage: deploy-prod-stage
  script: 
    - xxxxxx
    - xxxxxx*

Чаще всего BUILD_PROD_JOB и DEPLOY_PROD_JOB выполняются в одном и том же каталоге сборки. Но иногда они используют разные каталоги друг друга.

журнал gitlab-runner

BUILD_PROD_JOB Извлечение изменений с глубиной git, установленной на 50... Инициализирован пустой репозиторий Git в /xxxx/gitlab-runner/builds/(имя gitlab-runner)/ 1 /( имя репозитория)/.git/ .....

DEPLOY_PROD_JOB Извлечение изменений с глубиной git, установленной на 50... Инициализирован пустой репозиторий Git в /xxxx/gitlab-runner/builds/(имя gitlab-runner)/ 0 /( имя репозитория)/.git/ ....

Я догадался, почему это происходит.

  • BUILD_PROD_JOB начал выполняться, пока выполняется другое задание. итак, CI_CONCURRENT_ID равен 1
  • DEPLOY_PROD_JOB начал выполняться после завершения других заданий, поэтому CI_CONCURRENT_ID равен 0.

В этом случае могу ли я принудительно запустить «DEPLO_PROD_JOB» в том же каталоге build_dir, что и «BUILD_PROD_JOB»?

  • BUILD_PRODJOB --> /xxxx/gitlab-runner/builds/(имя gitlab-runner)/1/(имя репозитория)/.git/
  • DEPLOY_PRODJOB --> /xxxx/gitlab-runner/builds/(имя gitlab-runner)/1/(имя репозитория)/.git/

0 ответов

Другие вопросы по тегам