# #git #docker #gitlab #gitlab-ci #gitlab-ci-runner
Вопрос:
У меня есть проект в gitlab, который использует пользовательский каталог CI/CD, например:
my-project/
├─ .ci/
│ ├─ gitlab-ci.yml
│ ├─ local-ci.sh
├─ .git/
├─ my-project/
├─ tests/
Где local-ci.sh это скрипт, который вызывает gitlab-runner
конвейер в gitlab-ci.yml
.
В gitlab вы можете определить пользовательский путь для файла gitlab-ci.yml, поэтому конвейер работает, когда я нажимаю на удаленный репозиторий. Я хотел бы запустить тот же конвейер CI на своем локальном компьютере с помощью gitlab-runner
и докера, прежде чем переходить в удаленный репозиторий.
Проблема, с которой я сталкиваюсь, заключается в том, что при локальном gitlab-runner
запуске pieline ожидается .git
, что каталог будет находиться в том же каталоге, gitlab-ci.yml
что и сценарий. Есть ли способ настроить, где git
находится каталог при запуске gitlab-runner
?
В частности, из этой команды (компоновка-это этап конвейера):
gitlab-runner exec docker Linting
Я получаю эту ошибку:
fatal: '<absolute path>/my-project/.ci' does not appear to be a git repository
fatal: Could not read from remote repository.
Когда я копирую gitlab-ci.yml
сценарий в корневой каталог и изменяю рабочий каталог в local-ci.sh
сценарии, конвейер завершается без проблем. Есть какие-нибудь мысли?
ПРАВКА: добавление заметок об ошибках и копирование сценария CI.
Комментарии:
1. Рассматривали ли вы возможность использования включает в себя docs.gitlab.com/ee/ci/yaml/includes.html
2. В моем понимании, includes-это способ включить дополнительные файлы yaml, а не идентифицировать удаленный репозиторий для использования конвейером CI.