version: 2.1 # the default pipeline parameters, which will be updated according to # the results of the path-filtering orb parameters: lint_only: type: boolean default: false jobs: lint: docker: - image: cimg/python:3.7.4 steps: - checkout - run: name: Install pre-commit hook command: | pip install pre-commit pre-commit install - run: name: Linting command: pre-commit run --all-files - run: name: Check docstring coverage command: | pip install interrogate interrogate -v --ignore-init-method --ignore-module --ignore-nested-functions --ignore-regex "__repr__" --fail-under 50 mmpose build_cpu: parameters: # The python version must match available image tags in # https://circleci.com/developer/images/image/cimg/python python: type: string torch: type: string torchvision: type: string docker: - image: cimg/python:<< parameters.python >> resource_class: large steps: - checkout - run: name: Install Libraries command: | sudo apt-get update sudo apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 libturbojpeg - run: name: Configure Python & pip command: | python -m pip install --upgrade pip python -m pip install wheel - run: name: Install PyTorch command: | python -V python -m pip install torch==<< parameters.torch >>+cpu torchvision==<< parameters.torchvision >>+cpu -f https://download.pytorch.org/whl/torch_stable.html - run: name: Install mmpose dependencies command: | python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cpu/torch<< parameters.torch >>/index.html python -m pip install mmdet python -m pip install mmtrack python -m pip install -r requirements.txt python -m pip install -r requirements/poseval.txt python -m pip install albumentations>=0.3.2 --no-binary imgaug,albumentations - run: name: Build and install command: | python -m pip install -e . - run: name: Run unittests command: | python -m coverage run --branch --source mmpose -m pytest tests/ python -m coverage xml python -m coverage report -m build_cuda: parameters: # The python version must match available image tags in # https://circleci.com/developer/images/image/cimg/python python: type: string torch: type: string torchvision: type: string cuda: type: string default: cu102 machine: image: ubuntu-1604-cuda-10.2:202012-01 resource_class: gpu.nvidia.small steps: - checkout - run: name: Install Libraries command: | sudo apt-get update sudo apt-get install -y git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 libgl1-mesa-glx pyenv versions - run: name: Configure Python & pip command: | pyenv global << parameters.python >> python -m pip install --upgrade pip python -m pip install wheel - run: name: Install PyTorch command: | python -V python -m pip install torch==<< parameters.torch >>+<< parameters.cuda >> torchvision==<< parameters.torchvision >>+<< parameters.cuda >> -f https://download.pytorch.org/whl/torch_stable.html - run: name: Install mmocr dependencies command: | python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/<< parameters.cuda >>/torch<< parameters.torch >>/index.html python -m pip install mmdet python -m pip install -r requirements.txt python -m pip install -r requirements/poseval.txt python -m pip install albumentations>=0.3.2 --no-binary imgaug,albumentations - run: name: Build and install command: | python setup.py check -m -s TORCH_CUDA_ARCH_LIST=7.0 python -m pip install -e . - run: name: Run unittests command: | python -m pytest tests/ workflows: pr_stage_lint: when: << pipeline.parameters.lint_only >> jobs: - lint: name: lint filters: branches: ignore: - main pr_stage_test: when: not: << pipeline.parameters.lint_only >> jobs: - lint: name: lint filters: branches: ignore: - main - build_cpu: name: minimum_version_cpu torch: 1.6.0 torchvision: 0.7.0 python: 3.6.9 # The lowest python 3.6.x version available on CircleCI images requires: - lint - build_cpu: name: maximum_version_cpu torch: 1.9.0 torchvision: 0.10.0 python: 3.9.0 requires: - minimum_version_cpu - hold: type: approval requires: - maximum_version_cpu - build_cuda: name: mainstream_version_gpu torch: 1.8.1 torchvision: 0.9.1 python: 3.8.6 requires: - hold merge_stage_test: when: not: << pipeline.parameters.lint_only >> jobs: - build_cuda: name: minimum_version_gpu torch: 1.6.0 torchvision: 0.7.0 python: 3.6.12 cuda: cu101 filters: branches: only: - main