Travis CI не обновляет подмодуль git и выдает
ОШИБКА: Разрешение appdev/frontend.git запрещено для развертывания ключа фатально: Не удалось прочитать из удаленного репозитория. Убедитесь, что у вас есть правильные права доступа и репозиторий существует.
Я уже создал ssh-keygen и добавил его в качестве ключа развертывания в github, но разрешение на его предоставление все равно было отклонено.
Submodule 'frontend' ([email protected]:appdev/frontend.git) registered for path 'frontend'
fatal: clone of '[email protected]:appdev/frontend.git' into submodule path '/home/travis/build/appdev/b2b/frontend' failed
Failed to clone 'frontend'. Retry scheduled
The command "eval git submodule update --init --recursive " failed. Retrying, 2 of 3.
Я добавил ключ ssh в Github Deploy Key.
.travis.yaml
language: python
git:
submodules: true
quiet: true
depth: false
...
...
.gitmodules
[submodule "frontend"]
path = frontend
url = [email protected]:appdev/frontend.git
@phd Я также добавил ключ развертывания для подмодуля, но получаю сообщение об ошибке
Как настроить ~/.ssh/config
, чтобы SSH использовал правильный ключ при клонировании соответствующих модулей?
Если подмодуль должен ссылаться на определенный ключ развертывания (key1), вам нужно изменить URL-адрес подмодуля , используя git submodule set-url -- /path/to/submodule key1:appdev/frontend.git
С key1
записью Host
в вашем ~/.ssh/config
, как прокомментировано:
Host key1
Hostname github.com
User git
IdentityFile ~/.ssh/key1
С Travis-CI это можно сделать за before_script
шаг.
Обратите внимание, что Travis-CI рекомендует использовать ключ пользователя вместо.
Ключи развертывания для каждого репозитория. У вас должен быть ключ развертывания для каждого подмодуля (помните, что подмодули — это отдельные репозитории) и настроить SSH для использования этих ключей.