Я занимался этим последние пару дней и не могу понять, почему перестала работать моя сборка Jenkins. Jenkins настроен для запуска заданий в док-контейнерах, полученных из jenkins-slave.
У меня есть проект узла, и я пытаюсь запустить npm install
в качестве предварительного условия для запуска моих тестов.
ПакетФайл .json ссылается на два частных репозитория github. Я настроил .ssh, как описано в нескольких постах, с файлом конфигурации, ссылающимся на несколько ключей rsa. Я почти уверен, что он настроен правильно, так как выполнение команд git на контейнере работает должным образом (см. Ниже).
Если я запускаю сборку jenkins, я получаю следующую ошибку при установке команды npm:
npm ERR! /usr/bin/git ls-remote -h -t ssh://git@{host}/{account}/{repo}.git
npm ERR!
npm ERR! ssh: Could not resolve hostname {host}:Name or service not known
Чтобы проверить, что происходит, я добавил в свой Jenkinsfile вторую команду оболочки, чтобы она выглядела примерно так:
sh '/usr/bin/git ls-remote -h -t ssh://git@{host}/{account}/{repo}.git'
sh 'npm install'
Как видите, это та же самая командаэто терпит неудачу сразу после команды установки npm. Только эта команда успешна.
Кто-нибудь знает, что может привести к тому, что вывод команды будет отличаться, если он запускается как побочный продукт при установке npm? Ранее это работало, и в Jenkinsfile не было внесено никаких изменений до того, как он перестал работать.
То, что я также вижу при запуске установки npm, но может не иметь отношения к множеству предупреждений, таких как:
npm WARN tar ENOENT: нет такого файла или каталога, откройте '/var/lib/jenkins/workspace/ndomirrelevant_path‹/node_modules/.staging/bcrypt-b0327167/examples/async_compare.js'
Я могу поделиться дополнительной информацией, если требуется.