Spaces:
Sleeping
Sleeping
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-18.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: 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-18.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: 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 . | |
- 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-18.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: 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 | |
# pstuil is an optional package to detect the number of CPU for compiling mmcv | |
- name: Install psutil | |
run: pip install 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 . | |
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-18.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.3.1, 1.5.1+cu101, 1.6.0+cu101, 1.7.0+cu101, 1.8.0+cu101] | |
include: | |
- torch: 1.3.1 | |
torchvision: 0.4.2 | |
- 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: 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.9'}} | |
- name: Install Pillow | |
run: python -m pip install Pillow==6.2.2 | |
if: ${{matrix.torchvision == '0.4.2'}} | |
# When we use a third-party container, we need to add python -m to call | |
# the user-installed pip when we use the pip command, otherwise it will | |
# call the system pip | |
- name: Install PyTorch | |
run: python -m 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: python -m pip install protobuf && apt-get -y install libprotobuf-dev protobuf-compiler cmake | |
if: ${{matrix.python-version == '3.9'}} | |
# pstuil is an optional package to detect the number of CPU for compiling mmcv | |
- name: Install psutil | |
run: python -m pip install psutil | |
- name: Build and install | |
run: rm -rf .eggs && python -m pip install -e . | |
- name: Validate the installation | |
run: python -c "import mmcv" | |
- name: Run unittests and generate coverage report | |
run: | | |
python -m 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-18.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: 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: Add PPA | |
run: | | |
apt-get update && apt-get install -y software-properties-common | |
add-apt-repository -y ppa:deadsnakes/ppa | |
- name: Install python-dev | |
run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y python${{matrix.python-version}}-dev | |
- name: python -m Install PyTorch | |
run: python -m 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 | |
# pstuil is an optional package to detect the number of CPU for compiling mmcv | |
- name: Install psutil | |
run: python -m pip install psutil | |
- name: Build and install | |
run: rm -rf .eggs && python -m pip install -e . | |
- name: Validate the installation | |
run: python -c "import mmcv" | |
- name: Run unittests and generate coverage report | |
run: | | |
python -m 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: | | |
python -m 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_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: 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 . | |
- 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: 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 . | |
- 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.3.1, 1.5.1, 1.6.0, 1.7.0, 1.8.0, 1.9.0] | |
include: | |
- torch: 1.3.1 | |
torchvision: 0.4.2 | |
- 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: 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 . | |
- 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 | |