Я пытаюсь установить требования на этапе сборки и запустить тесты на circleci. Я столкнулся с проблемой отказа в разрешении при запуске установки pip, поскольку он пытается установить требования глобально. Я мог бы установить требования на уровне пользователя, но использование virtualenv также работает:
version: 2
defaults: &defaults
docker:
- image: circleci/python:3.6
jobs:
build_dataloader:
<<: *defaults
working_directory: ~/app/dataloader
steps:
- checkout:
path: ~/app
- run:
name: Install requirements
command: |
virtualenv env
source env/bin/activate
pip install -r requirements.txt
dataloader_tests:
<<: *defaults
parallelism: 2
steps:
- checkout:
path: ~/app
- run:
name: Running dataloader tests
command: |
cd ~/app/dataloader
python3 -m unittest discover tests/unit/
- store_artifacts:
path: test-reports/
destination: app_tests
workflows:
version: 2
run_tests:
jobs:
- build_dataloader
- dataloader_tests:
requires:
- build_dataloader
Есть ли способ поместить virtualenv в отдельный шаг? Это не работает, когда я помещаю часть virtualenv в отдельный шаг:
version: 2
defaults: &defaults
docker:
- image: circleci/python:3.6
jobs:
build_dataloader:
<<: *defaults
working_directory: ~/app/dataloader
steps:
- checkout:
path: ~/app
- run:
name: Setup virtualenv
command: |
virtualenv env
source env/bin/activate
- run:
name: Install requirements
command: |
pip install -r requirements.txt
dataloader_tests:
<<: *defaults
parallelism: 2
steps:
- checkout:
path: ~/app
- run:
name: Running dataloader tests
command: |
cd ~/app/dataloader
python3 -m unittest discover tests/unit/
- store_artifacts:
path: test-reports/
destination: app_tests
workflows:
version: 2
run_tests:
jobs:
- build_dataloader
- dataloader_tests:
requires:
- build_dataloader
Почему это не получается? Разве это не должно создавать виртуальную среду, если я помещу это в отдельный шаг?