Проблема с непрерывной интеграцией gitlab с подмодулями - PullRequest
0 голосов
/ 20 мая 2019

У меня есть несколько проектов, которые используют общий проект в качестве подмодуля.Подмодуль также размещен на gitlab, но это другой проект под другим базовым именем.

В каждом проекте подмодуль связан с использованием адреса git, а не относительного пути.

Сборки CI постоянно терпят неудачу, потому что они утверждают, что у них нет разрешений на извлечение подмодуля.

Как я могу передать учетные данные для подмодуля в CI?поскольку это одна и та же учетная запись пользователя, зачем нужны даже учетные данные?

Я получаю сообщение об ошибке, подобное этому:

MSBUILD: ошибка MSB1003: укажите проект или файл решения.Текущий рабочий каталог не содержит проект или файл решения.section_end: 1558348623: build_scriptsection_start: 1558348623: after_scriptsection_end: 1558348625: after_scriptsection_start: 1558348625: upload_artifacts_on_failuresection_end: 1558348627: выгрузка_объекта * не получено * 1013: вы не можете получить уведомление о том, что вы не прошли проверку: 1013: вы не получили код проверки: вы не получили код: вы не получили ответное сообщение: вы не получили код: 1013

1 Ответ

0 голосов
/ 20 мая 2019

Если субмодуль находится на том же сервере GitLab, у вас есть для использования относительных URL в вашем .gitmodules.

Насколько я знаю, до тех пор, пока пользователь, запускающий конвейер, имеет правильные разрешения для доступа к обоим проектам, задание, которое он запускает, должно по-прежнему иметь возможность извлекать субмодуль (если это относительный URL).

Из соответствующей документации :

Если вы используете GitLab 8.12+ и ваш подмодуль находится на том же сервере GitLab, вы должны обновить файл .gitmodules, чтобы использовать относительные URL-адреса. Поскольку Git позволяет использовать относительные URL-адреса для конфигурации .gitmodules, это легко позволяет вам использовать HTTP (S) для клонирования всех ваших заданий CI и SSH для всех ваших локальных проверок. .Gitmodules будет выглядеть так:

  path = project
  url = ../../group/project.git

Обратите внимание, не забудьте установить GIT_SUBMODULE_STRATEGY в вашем скрипте .gitlab-ci.yml.

...