fix bug #226
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: | |
push: | |
paths-ignore: | |
- 'README.md' | |
- 'README_zh-CN.md' | |
- 'docs/**' | |
- 'examples/**' | |
- '.dev_scripts/**' | |
- 'docker/**' | |
pull_request: | |
paths-ignore: | |
- 'README.md' | |
- 'README_zh-CN.md' | |
- 'docs/**' | |
- 'examples/**' | |
- '.dev_scripts/**' | |
- 'docker/**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
MMCV_WITH_OPS: 1 | |
jobs: | |
build_without_torch: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
python-version: [3.7] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Upgrade pip and wheel | |
run: pip install pip wheel --upgrade | |
- name: Install system dependencies | |
run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg | |
- name: Build and install | |
run: rm -rf .eggs && pip install -e . | |
- name: Validate the installation | |
run: python -c "import mmcv" | |
- name: Run unittests and generate coverage report | |
run: | | |
pip install -r requirements/test.txt | |
pytest tests/ \ | |
--ignore=tests/test_runner \ | |
--ignore=tests/test_device/test_ipu \ | |
--ignore=tests/test_optimizer.py \ | |
--ignore=tests/test_cnn \ | |
--ignore=tests/test_parallel.py \ | |
--ignore=tests/test_ops \ | |
--ignore=tests/test_load_model_zoo.py \ | |
--ignore=tests/test_utils/test_logging.py \ | |
--ignore=tests/test_image/test_io.py \ | |
--ignore=tests/test_utils/test_registry.py \ | |
--ignore=tests/test_utils/test_parrots_jit.py \ | |
--ignore=tests/test_utils/test_trace.py \ | |
--ignore=tests/test_utils/test_hub.py \ | |
--ignore=tests/test_device \ | |
--ignore=tests/test_utils/test_torch_ops.py | |
build_without_ops: | |
runs-on: ubuntu-22.04 | |
env: | |
MMCV_WITH_OPS: 0 | |
strategy: | |
matrix: | |
python-version: [3.7] | |
torch: [1.7.0, 1.8.0, 1.9.0] | |
include: | |
- torch: 1.7.0 | |
torchvision: 0.8.1 | |
- torch: 1.8.0 | |
torchvision: 0.9.0 | |
- torch: 1.9.0 | |
torchvision: 0.10.0 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Upgrade pip and wheel | |
run: pip install pip wheel --upgrade | |
- name: Install system dependencies | |
run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg | |
- name: Install PyTorch | |
run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html | |
- name: Build and install | |
run: rm -rf .eggs && pip install -e . -v | |
- name: Validate the installation | |
run: python -c "import mmcv" | |
- name: Run unittests | |
run: | | |
pip install -r requirements/test.txt | |
pytest tests/ --ignore=tests/test_ops | |
build_cpu: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
python-version: [3.7] | |
torch: [1.5.1, 1.6.0, 1.7.0, 1.8.0, 1.9.0] | |
include: | |
- torch: 1.5.1 | |
torchvision: 0.6.1 | |
- torch: 1.6.0 | |
torchvision: 0.7.0 | |
- torch: 1.7.0 | |
torchvision: 0.8.1 | |
- torch: 1.8.0 | |
torchvision: 0.9.0 | |
- torch: 1.9.0 | |
torchvision: 0.10.0 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Upgrade pip and wheel | |
run: pip install pip wheel --upgrade | |
- name: Install system dependencies | |
run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg | |
- name: Install PyTorch | |
run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html | |
- name: Install ninja to speed the compilation | |
run: pip install ninja psutil | |
- name: Create sdist and untar | |
run: | | |
MMCV_WITH_OPS=1 python setup.py sdist | |
tar zxvf dist/mmcv-full* -C /tmp | |
rm -r mmcv | |
- name: Build and install from sdist | |
run: | | |
pushd /tmp/mmcv-full* | |
pip install -e . -v | |
popd | |
- name: Validate the installation | |
run: python -c "import mmcv" | |
- name: Run unittests and generate coverage report | |
run: | | |
pip install -r requirements/test.txt | |
coverage run --branch --source=mmcv -m pytest tests/ | |
coverage xml | |
coverage report -m | |
build_cu101: | |
runs-on: ubuntu-22.04 | |
container: | |
image: pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel | |
env: | |
FORCE_CUDA: 1 | |
MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 | |
strategy: | |
matrix: | |
python-version: [3.7] | |
torch: [1.5.1+cu101, 1.6.0+cu101, 1.7.0+cu101, 1.8.0+cu101] | |
include: | |
- torch: 1.5.1+cu101 | |
torchvision: 0.6.1+cu101 | |
- torch: 1.6.0+cu101 | |
torchvision: 0.7.0+cu101 | |
- torch: 1.7.0+cu101 | |
torchvision: 0.8.1+cu101 | |
- torch: 1.8.0+cu101 | |
torchvision: 0.9.0+cu101 | |
- python-version: 3.6 | |
torch: 1.8.0+cu101 | |
torchvision: 0.9.0+cu101 | |
- python-version: 3.8 | |
torch: 1.8.0+cu101 | |
torchvision: 0.9.0+cu101 | |
- python-version: 3.9 | |
torch: 1.8.0+cu101 | |
torchvision: 0.9.0+cu101 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Upgrade pip and wheel | |
run: pip install pip wheel --upgrade | |
- name: Fetch GPG keys | |
run: | | |
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub | |
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub | |
- name: Install python-dev | |
run: apt-get update && apt-get install -y python${{matrix.python-version}}-dev | |
if: ${{matrix.python-version == '3.6'}} | |
- name: Install PyTorch | |
run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html | |
- name: Install system dependencies | |
run: apt-get update && apt-get install -y ffmpeg libturbojpeg ninja-build | |
- name: Install dependencies for compiling onnx when python=3.9 | |
run: pip install protobuf && apt-get -y install libprotobuf-dev protobuf-compiler cmake | |
if: ${{matrix.python-version == '3.9'}} | |
- name: Install ninja to speed the compilation | |
run: pip install ninja psutil | |
- name: Install pre-built opencv-python for python3.6 | |
run: pip install opencv-python --prefer-binary | |
if: ${{matrix.python-version == '3.6'}} | |
- name: Build and install | |
run: rm -rf .eggs && pip install -e . -v | |
- name: Run unittests and generate coverage report | |
run: | | |
pip install -r requirements/test.txt | |
coverage run --branch --source=mmcv -m pytest tests/ | |
coverage xml | |
coverage report -m | |
# Only upload coverage report for python3.7 && pytorch1.6 | |
- name: Upload coverage to Codecov | |
if: ${{matrix.torch == '1.6.0+cu101' && matrix.python-version == '3.7'}} | |
uses: codecov/[email protected] | |
with: | |
file: ./coverage.xml | |
flags: unittests | |
env_vars: OS,PYTHON | |
name: codecov-umbrella | |
fail_ci_if_error: false | |
build_cu102: | |
runs-on: ubuntu-22.04 | |
container: | |
image: pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel | |
env: | |
FORCE_CUDA: 1 | |
MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 | |
strategy: | |
matrix: | |
python-version: [3.7] | |
torch: [1.9.0+cu102, 1.10.0+cu102] | |
include: | |
- torch: 1.9.0+cu102 | |
torchvision: 0.10.0+cu102 | |
- torch: 1.10.0+cu102 | |
torchvision: 0.11.0+cu102 | |
- python-version: '3.10' | |
torch: 1.11.0+cu102 | |
torchvision: 0.12.0+cu102 | |
- python-version: '3.10' | |
torch: 1.12.0+cu102 | |
torchvision: 0.13.0+cu102 | |
- python-version: 3.6 | |
torch: 1.9.0+cu102 | |
torchvision: 0.10.0+cu102 | |
- python-version: 3.8 | |
torch: 1.9.0+cu102 | |
torchvision: 0.10.0+cu102 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Upgrade pip and wheel | |
run: pip install pip wheel --upgrade | |
- name: Fetch GPG keys | |
run: | | |
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub | |
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub | |
- name: Install python-dev | |
run: apt-get update && apt-get install -y python${{matrix.python-version}}-dev | |
if: ${{matrix.python-version == '3.6'}} | |
- name: Install PyTorch | |
run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html | |
- name: Install system dependencies | |
run: apt-get update && apt-get install -y ffmpeg libturbojpeg ninja-build | |
- name: Install ninja to speed the compilation | |
run: pip install ninja psutil | |
# the directory for header files for the Python C-API could be wrong since setuptools>=65.2.0 | |
- name: Install specified version for setuptools when python==3.10 | |
run: pip install 'setuptools<=65.1.0' | |
if: ${{matrix.python-version == '3.10'}} | |
- name: Install pre-built opencv-python for python3.6 | |
run: pip install opencv-python --prefer-binary | |
if: ${{matrix.python-version == '3.6'}} | |
- name: Build and install | |
run: rm -rf .eggs && pip install -e . -v | |
- name: Run unittests and generate coverage report | |
run: | | |
pip install -r requirements/test.txt | |
coverage run --branch --source=mmcv -m pytest tests/ | |
coverage xml | |
if: ${{matrix.python-version != '3.10'}} | |
# special treatment for python3.10 because onnx and onnxruntime don't provide python3.10 pre-built packages | |
- name: Run unittests and generate coverage report for python3.10 | |
run: | | |
pip install -r requirements/test.txt | |
coverage run --branch --source=mmcv -m pytest tests/ --ignore=tests/test_ops/test_onnx.py --ignore=tests/test_ops/test_tensorrt.py --ignore=tests/test_ops/test_tensorrt_preprocess.py | |
coverage xml | |
if: ${{matrix.python-version == '3.10'}} | |
build_cu116: | |
runs-on: ubuntu-22.04 | |
container: | |
image: pytorch/pytorch:1.13.0-cuda11.6-cudnn8-devel | |
env: | |
FORCE_CUDA: 1 | |
MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 | |
strategy: | |
matrix: | |
python-version: ['3.10'] | |
torch: [1.13.0+cu116] | |
include: | |
- torch: 1.13.0+cu116 | |
torchvision: 0.14.0+cu116 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Upgrade pip and wheel | |
run: pip install pip wheel --upgrade | |
- name: Fetch GPG keys | |
run: | | |
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub | |
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub | |
- name: Install PyTorch | |
run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html | |
- name: Install system dependencies | |
run: apt-get update && apt-get install -y ffmpeg libturbojpeg ninja-build | |
- name: Install ninja to speed the compilation | |
run: pip install ninja psutil | |
# the directory for header files for the Python C-API could be wrong since setuptools>=65.2.0 | |
- name: Install specified version for setuptools when python==3.10 | |
run: pip install 'setuptools<=65.1.0' | |
if: ${{matrix.python-version == '3.10'}} | |
- name: Build and install | |
run: rm -rf .eggs && pip install -e . -v | |
- name: Run unittests and generate coverage report | |
run: | | |
pip install -r requirements/test.txt | |
coverage run --branch --source=mmcv -m pytest tests/ --ignore=tests/test_ops/test_onnx.py --ignore=tests/test_ops/test_tensorrt.py --ignore=tests/test_ops/test_tensorrt_preprocess.py | |
coverage xml | |
build_windows_without_ops: | |
runs-on: windows-latest | |
env: | |
MMCV_WITH_OPS: 0 | |
strategy: | |
matrix: | |
torch: [1.7.1, 1.8.0, 1.9.0] | |
include: | |
- torch: 1.7.1 | |
torchvision: 0.8.2 | |
- torch: 1.8.0 | |
torchvision: 0.9.0 | |
- torch: 1.9.0 | |
torchvision: 0.10.0 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.7 | |
- name: Upgrade pip and wheel | |
run: python -m pip install pip wheel --upgrade | |
- name: Install PyTorch | |
run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu --no-cache-dir -f https://download.pytorch.org/whl/torch_stable.html | |
- name: Build and install | |
run: pip install -e . -v | |
- name: Validate the installation | |
run: python -c "import mmcv" | |
- name: Run unittests | |
run: | | |
pip install -r requirements/test.txt | |
pytest tests/ --ignore=tests/test_ops --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py --ignore tests/test_image/test_io.py | |
build_windows: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
torch: [1.7.1, 1.8.0, 1.9.0] | |
include: | |
- torch: 1.7.1 | |
torchvision: 0.8.2 | |
- torch: 1.8.0 | |
torchvision: 0.9.0 | |
- torch: 1.9.0 | |
torchvision: 0.10.0 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.7 | |
- name: Upgrade pip and wheel | |
run: python -m pip install pip wheel --upgrade | |
- name: Install PyTorch | |
run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu --no-cache-dir -f https://download.pytorch.org/whl/torch_stable.html | |
- name: Build and install | |
run: pip install -e . -v | |
- name: Validate the installation | |
run: python -c "import mmcv" | |
- name: Run unittests | |
run: | | |
pip install -r requirements/test.txt | |
pytest tests/ --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py --ignore tests/test_image/test_io.py | |
build_macos: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
torch: [1.5.1, 1.6.0, 1.7.0, 1.8.0, 1.9.0] | |
include: | |
- torch: 1.5.1 | |
torchvision: 0.6.1 | |
- torch: 1.6.0 | |
torchvision: 0.7.0 | |
- torch: 1.7.0 | |
torchvision: 0.8.1 | |
- torch: 1.8.0 | |
torchvision: 0.9.0 | |
- torch: 1.9.0 | |
torchvision: 0.10.0 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.7 | |
- name: Install system dependencies | |
run: brew install ffmpeg jpeg-turbo | |
- name: Upgrade pip and wheel | |
run: pip install pip wheel --upgrade | |
- name: Install utils | |
run: pip install psutil | |
- name: Install Pillow | |
run: pip install Pillow==6.2.2 | |
if: ${{matrix.torchvision == '0.4.2'}} | |
- name: Install PyTorch | |
run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} --no-cache-dir | |
- name: Build and install | |
run: | | |
rm -rf .eggs | |
CC=clang CXX=clang++ CFLAGS='-stdlib=libc++' pip install -e . -v | |
- name: Validate the installation | |
run: python -c "import mmcv" | |
- name: Run unittests | |
run: | | |
pip install -r requirements/test.txt | |
# The timing on macos VMs is not precise, so we skip the progressbar tests | |
pytest tests/ --ignore tests/test_utils/test_progressbar.py --ignore tests/test_utils/test_timer.py |