У меня есть шаг sh
в скриптовом конвейере Jenkins, который, в свою очередь, просит git клонировать частный репозиторий GitHub через SSH (это система управления зависимостями, которая обрабатывает зависимости, размещенные на GitHub). Сам конвейер выполняется через плагин GitHub Organization. Он включает в себя команду checkout scm
, которая также обращается к частному репозиторию, из журнала, который я вижу, что он использует переменную окружения GIT_SSH
для передачи информации для входа в систему на этом шаге (это прекрасно работает). Есть ли способ передать эту же информацию на другой шаг, то есть на мой sh "install_dependencies.sh"
шаг? Обратите внимание, что withCredentials
даст мне доступ к учетным данным через переменные среды, но как мне передать их в git? GIT_SSH
- это путь к сценарию оболочки ssh, который я не знаю, как сгенерировать с помощью withCredentials
. Есть ли другой способ передать учетные данные в git через переменные окружения?
Минимальный Jenkinsfile
будет выглядеть следующим образом:
node {
checkout scm // successfully accesses github credentials
withCredentials([
// what to put here?
]) {
// install python dependencies
sh 'pip install -r requirements.txt'
}
sh 'pytest'
}
В файле requirements.txt
перечислены зависимости, он содержит строку вида
-e git+ssh://git@github.com/some_private/repo@dev#egg=egg_name
который указывает pip
получить требование через git
.
Вероятно, можно вручную извлечь код, используя другой шаг Jenkins checkout scm
, а затем установить его из Jenkinsfile. Тем не менее, это лишило бы смысла иметь requirements.txt
в качестве единственного источника истины для требований.