Я пытаюсь настроить проект, в котором используются блестящие новые конвейеры Jenkins, а более конкретно - проект с несколькими каналами.
У меня есть Jenkinsfile, созданный в тестовой ветке, как показано ниже:
node {
stage 'Preparing VirtualEnv'
if (!fileExists('.env')){
echo 'Creating virtualenv ...'
sh 'virtualenv --no-site-packages .env'
}
sh '. .env/bin/activate'
sh 'ls -all'
if (fileExists('requirements/preinstall.txt')){
sh 'pip install -r requirements/preinstall.txt'
}
sh 'pip install -r requirements/test.txt'
stage 'Unittests'
sh './manage.py test --noinput'
}
Стоит отметить, что preinstall.txt обновит пип
Я получаю ошибку, как показано ниже:
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pip'
Похоже, он пытается обновить pip в глобальном env, а не внутри virtualenv, и выглядит так, как каждый sh
шаг находится в своем собственном контексте, как заставить их выполнять в том же контексте?