Tôi đang cố gắng thiết lập một dự án sử dụng các đường ống Jenkins mới sáng bóng, cụ thể hơn là một dự án đa ngành.Jenkinsfile và Python virtualenv
Tôi đã một Jenkinsfile tạo ra trong một chi nhánh kiểm tra như sau:
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'
}
Nó đáng chú ý preinstall.txt rằng sẽ cập nhật pip
Tôi nhận được lỗi như sau:
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pip'
Có vẻ như nó đang cố gắng cập nhật pip trong env toàn cục thay vì bên trong virtualenv, và có vẻ như mỗi bước sh
đều nằm trong ngữ cảnh riêng của nó, làm cách nào để chúng thực hiện lệnh wit hin cùng bối cảnh?
'kích hoạt' chỉ áp dụng cho vỏ instace nó được chạy trong, trong trường hợp của bạn là một dòng. Hãy thử chạy 'pip' trong venvới đường dẫn đầy đủ và' manage.py' với (đường dẫn đầy đủ) 'python'. –