Пользовательский каталог CI для gitlab-runner

# #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.