光沢のある新しい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はピップ
を更新することは注目に値します:
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pip'
それは内部のvirtualenvの代わりにグローバルなenvでピップを更新しようとしているように見え、それぞれsh
のステップが独自のコンテキストにあるように見えますが、どうすればそれらをウィット同じ文脈では?
'activate'は、実行されているシェルインスタンスにのみ適用されます。 venvで 'pip'をフルパスで実行し、' manage.py'で(フルパス) 'python'を実行してみてください。 –