как разделить «каталог репозитория сборки» между заданиями в конфигурации с несколькими бегунами 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/