<commit_before>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@v2
        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 coverage
        run: |
          pip install interrogate
          interrogate -v --ignore-init-method --ignore-module --ignore-nested-functions --ignore-regex "__repr__" --fail-under 80 mmdet

  build_cpu:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: [3.7]
        torch: [1.3.1, 1.5.1, 1.6.0]
        include:
          - torch: 1.3.1
            torchvision: 0.4.2
            mmcv: "latest+torch1.3.0+cpu"
          - torch: 1.5.1
            torchvision: 0.6.1
            mmcv: "latest+torch1.5.0+cpu"
          - torch: 1.6.0
            torchvision: 0.7.0
            mmcv: "latest+torch1.6.0+cpu"
    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 Pillow
        run: pip install Pillow==6.2.2
        if: ${{matrix.torchvision == '0.4.2'}}
      - 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 MMCV
        run: |
          pip install mmcv-full==${{matrix.mmcv}} -f https://download.openmmlab.com/mmcv/dist/index.html --use-deprecated=legacy-resolver
          python -c 'import mmcv; print(mmcv.__version__)'
      - name: Install unittest dependencies
        run: pip install -r requirements/tests.txt -r requirements/optional.txt
      - name: Build and install
        run: rm -rf .eggs && pip install -e .
      - name: Run unittests and generate coverage report
        run: |
          coverage run --branch --source mmdet -m pytest tests/
          coverage xml
          coverage report -m

  build_cuda:
    runs-on: ubuntu-latest

    env:
      CUDA: 10.1.105-1
      CUDA_SHORT: 10.1
      UBUNTU_VERSION: ubuntu1804
    strategy:
      matrix:
        python-version: [3.7]
        torch: [1.3.1, 1.5.1+cu101, 1.6.0+cu101]
        include:
          - torch: 1.3.1
            torchvision: 0.4.2
            mmcv: "latest+torch1.3.0+cu101"
          - torch: 1.5.1+cu101
            torchvision: 0.6.1+cu101
            mmcv: "latest+torch1.5.0+cu101"
          - torch: 1.6.0+cu101
            torchvision: 0.7.0+cu101
            mmcv: "latest+torch1.6.0+cu101"
          - torch: 1.6.0+cu101
            torchvision: 0.7.0+cu101
            mmcv: "latest+torch1.6.0+cu101"
            python-version: 3.6
          - torch: 1.6.0+cu101
            torchvision: 0.7.0+cu101
            mmcv: "latest+torch1.6.0+cu101"
            python-version: 3.8

    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
        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}
      - name: Install Pillow
        run: pip install Pillow==6.2.2
        if: ${{matrix.torchvision < 0.5}}
      - name: Install PyTorch
        run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html
      - name: Install mmdet dependencies
        run: |
          pip install mmcv-full==${{matrix.mmcv}} -f https://download.openmmlab.com/mmcv/dist/index.html --use-deprecated=legacy-resolver
          pip install -r requirements.txt
          python -c 'import mmcv; print(mmcv.__version__)'<commit_msg>[Enhance]: update mmcv install method (#4943)<commit_after>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@v2
        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 coverage
        run: |
          pip install interrogate
          interrogate -v --ignore-init-method --ignore-module --ignore-nested-functions --ignore-regex "__repr__" --fail-under 80 mmdet

  build_cpu:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: [3.7]
        torch: [1.3.1, 1.5.1, 1.6.0]
        include:
          - torch: 1.3.1
            torchvision: 0.4.2
            mmcv: "latest+torch1.3.0+cpu"
          - torch: 1.5.1
            torchvision: 0.6.1
            mmcv: "latest+torch1.5.0+cpu"
          - torch: 1.6.0
            torchvision: 0.7.0
            mmcv: "latest+torch1.6.0+cpu"
          - torch: 1.7.0
            torchvision: 0.8.1
            mmcv: "latest+torch1.7.0+cpu"
          - torch: 1.8.0
            torchvision: 0.9.0
            mmcv: "latest+torch1.8.0+cpu"
    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 Pillow
        run: pip install Pillow==6.2.2
        if: ${{matrix.torchvision == '0.4.2'}}
      - 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 MMCV
        run: |
          pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cpu/torch${{matrix.torch}}/index.html
          python -c 'import mmcv; print(mmcv.__version__)'
      - name: Install unittest dependencies
        run: pip install -r requirements/tests.txt -r requirements/optional.txt
      - name: Build and install
        run: rm -rf .eggs && pip install -e .
      - name: Run unittests and generate coverage report
        run: |
          coverage run --branch --source mmdet -m pytest tests/
          coverage xml
          coverage report -m

  build_cuda:
    runs-on: ubuntu-latest

    env:
      CUDA: 10.1.105-1
      CUDA_SHORT: 10.1
      UBUNTU_VERSION: ubuntu1804
    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
            torch_version: torch1.3.1
            torchvision: 0.4.2
            mmcv: "latest+torch1.3.0+cu101"
          - torch: 1.5.1+cu101
            torch_version: torch1.5.1
            torchvision: 0.6.1+cu101
            mmcv: "latest+torch1.5.0+cu101"
          - torch: 1.6.0+cu101
            torch_version: torch1.6.0
            torchvision: 0.7.0+cu101
            mmcv: "latest+torch1.6.0+cu101"
          - torch: 1.6.0+cu101
            torch_version: torch1.6.0
            torchvision: 0.7.0+cu101
            mmcv: "latest+torch1.6.0+cu101"
            python-version: 3.6
          - torch: 1.6.0+cu101
            torch_version: torch1.6.0
            torchvision: 0.7.0+cu101
            mmcv: "latest+torch1.6.0+cu101"
            python-version: 3.8
          - torch: 1.7.0+cu101
            torch_version: torch1.7.0
            torchvision: 0.8.1+cu101
            mmcv: "latest+torch1.7.0+cu101"
          - torch: 1.8.0+cu101
            torch_version: torch1.8.0
            torchvision: 0.9.0+cu101
            mmcv: "latest+torch1.8.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: Install CUDA
        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}
      - name: Install Pillow
        run: pip install Pillow==6.2.2
        if: ${{matrix.torchvision < 0.5}}
      - name: Install PyTorch
        run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html
      - name: Install mmdet dependencies
        run: |
          pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/${{matrix.torch_version}}/index.html
          pip install -r requirements.txt
          python -c 'import mmcv; print(mmcv.__version__)'
{'fraction_non_alphanumeric': 0.12961665498949054, 'fraction_numerical': 0.04944450005004504, 'mean_word_length': 1.8273910582908885, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 10, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 12, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '487980', 'n_tokens_mistral': 3626, 'n_tokens_neox': 3426, 'n_words': 682}