| name: build |
|
|
| on: [push, pull_request] |
|
|
| jobs: |
| lint: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Set up Python 3.7 |
| uses: actions/setup-python@v1 |
| with: |
| python-version: 3.7 |
| - name: Install pre-commit hook |
| run: | |
| pip install pre-commit |
| pre-commit install |
| - name: Linting |
| run: pre-commit run --all-files |
| - name: Check docstring |
| run: | |
| pip install interrogate |
| interrogate -v --ignore-init-method --ignore-module --ignore-nested-functions --exclude mmseg/ops --ignore-regex "__repr__" --fail-under 80 mmseg |
| |
| build: |
| env: |
| CUDA: 10.1.105-1 |
| CUDA_SHORT: 10.1 |
| UBUNTU_VERSION: ubuntu1804 |
| FORCE_CUDA: 1 |
| MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61 |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| python-version: [3.6, 3.7] |
| torch: [1.3.0+cpu, 1.5.0+cpu] |
| include: |
| - torch: 1.3.0+cpu |
| torchvision: 0.4.1+cpu |
| - torch: 1.5.0+cpu |
| torchvision: 0.6.0+cpu |
| - torch: 1.5.0+cpu |
| torchvision: 0.6.0+cpu |
| python-version: 3.8 |
| - torch: 1.5.0+cu101 |
| torchvision: 0.6.0+cu101 |
| python-version: 3.7 |
| - torch: 1.6.0+cu101 |
| torchvision: 0.7.0+cu101 |
| 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 CUDA |
| if: ${{matrix.torch == '1.5.0+cu101'}} |
| run: | |
| export INSTALLER=cuda-repo-${UBUNTU_VERSION}_${CUDA}_amd64.deb |
| wget http://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/${INSTALLER} |
| sudo dpkg -i ${INSTALLER} |
| wget https://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/7fa2af80.pub |
| sudo apt-key add 7fa2af80.pub |
| sudo apt update -qq |
| sudo apt install -y cuda-${CUDA_SHORT/./-} cuda-cufft-dev-${CUDA_SHORT/./-} |
| sudo apt clean |
| export CUDA_HOME=/usr/local/cuda-${CUDA_SHORT} |
| export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${CUDA_HOME}/include:${LD_LIBRARY_PATH} |
| export PATH=${CUDA_HOME}/bin:${PATH} |
| sudo apt-get install -y ninja-build |
| - name: Install Pillow |
| if: ${{matrix.torchvision == '0.4.1+cpu'}} |
| run: pip install Pillow==6.2.2 |
| - name: Install PyTorch |
| run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html |
| - name: Install mmseg dependencies |
| run: | |
| pip install mmcv-full==latest+torch${{matrix.torch}} -f https://download.openmmlab.com/mmcv/dist/index.html --use-deprecated=legacy-resolver |
| pip install -r requirements.txt |
| - name: Build and install |
| run: rm -rf .eggs && pip install -e . |
| - name: Run unittests and generate coverage report |
| run: | |
| coverage run --branch --source mmseg -m pytest tests/ |
| coverage xml |
| coverage report -m |
| |
| - name: Upload coverage to Codecov |
| if: ${{matrix.torch == '1.5.0+cu101' && matrix.python-version == '3.7'}} |
| uses: codecov/codecov-action@v1.0.10 |
| with: |
| file: ./coverage.xml |
| flags: unittests |
| env_vars: OS,PYTHON |
| name: codecov-umbrella |
| fail_ci_if_error: false |
|
|