我想设置一个项目,使用闪亮的新Jenkins管道,更具体地说是一个多分支项目。Jenkinsfile和Python virtualenv
我有一个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将更新PIP
我得到如下错误:
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pip'
看起来它试图更新全局env而不是virtualenv中的pip,并且看起来像每个sh
步骤都在它自己的上下文中,我如何让它们执行wit欣赏相同的情境?
'activate'只适用于运行它的shell例程,在你的情况下是单行。尝试在完整路径下使用venv运行'pip',使用(完整路径)'python'运行'manage.py'。 –