diff --git a/.circleci/config.yml b/.circleci/config.yml index a497551b..c747e6c9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -127,9 +127,8 @@ workflows: name: lint filters: branches: - only: - - /pull.*/ - - << pipeline.git.branch >> + ignore: + - main - build_cpu: name: minimum_version_cpu torch: 1.6.0 diff --git a/.github/workflows/build_pr.yml b/.github/workflows/build_pr.yml new file mode 100644 index 00000000..24e320f6 --- /dev/null +++ b/.github/workflows/build_pr.yml @@ -0,0 +1,141 @@ +name: build_pr + +on: + pull_request: + paths-ignore: + - 'README.md' + - 'README_zh-CN.md' + - 'docs/**' + - 'examples/**' + - '.dev_scripts/**' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build_cpu: + runs-on: ubuntu-18.04 + strategy: + matrix: + python-version: [3.7] + torch: [1.8.1] + include: + - torch: 1.8.1 + torchvision: 0.9.1 + 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 + run: pip install pip --upgrade + - name: Install Pillow + run: pip install Pillow + if: ${{matrix.torchvision == '0.4.1'}} + - 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 + - name: Install MMDet + run: pip install mmdet + - name: Install other dependencies + run: 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 mmocr -m pytest tests/ + coverage xml + coverage report -m + # Upload coverage report for python3.7 && pytorch1.8.1 cpu + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v1.0.14 + 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.8.1-cuda10.2-cudnn7-devel + strategy: + matrix: + python-version: [3.7] + torch: [1.8.1+cu102] + include: + - torch: 1.8.1+cu102 + torch_version: 1.8.1 + torchvision: 0.9.1+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 + run: python -m pip install pip --upgrade + - 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 system dependencies + run: | + apt-get update + apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libxrender-dev + apt-get clean + - name: Install Pillow + run: python -m pip install Pillow==6.2.2 + if: ${{matrix.torchvision < 0.5}} + - name: Install soundfile lib + run: apt-get install -y libsndfile1 + - name: Install librosa and soundfile + run: python -m pip install librosa soundfile + - name: Install lmdb + run: python -m pip install lmdb + - name: Install mmocr dependencies + run: | + python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch${{matrix.torch_version}}/index.html + python -m pip install mmdet + python -m pip install -r requirements.txt + - name: Build and install + run: | + rm -rf .eggs + python setup.py check -m -s + TORCH_CUDA_ARCH_LIST=7.0 python -m pip install -e . + + build_windows: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [windows-2022] + python: [3.7] + platform: [cpu, 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 + run: python -m pip install pip --upgrade + - name: Install Pillow + run: python -m pip install Pillow + - name: Install lmdb + run: python -m pip install lmdb + - name: Install PyTorch + run: python -m pip install torch==1.8.1+${{matrix.platform}} torchvision==0.9.1+${{matrix.platform}} -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html + - name: Install mmocr dependencies + run: | + python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.8/index.html --only-binary mmcv-full + python -m pip install mmdet + python -m pip install -r requirements.txt + - name: Build and install + run: | + python -m pip install -e . + - name: Run unittests and generate coverage report + run: | + pytest tests/ diff --git a/.github/workflows/build.yml b/.github/workflows/build_push.yml similarity index 53% rename from .github/workflows/build.yml rename to .github/workflows/build_push.yml index f1a79927..6f6adad3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build_push.yml @@ -1,4 +1,4 @@ -name: build +name: build_push on: push: @@ -11,43 +11,20 @@ on: branches: - main - pull_request: - paths-ignore: - - 'README.md' - - 'README_zh-CN.md' - - 'docs/**' - - 'examples/**' - - '.dev_scripts/**' - concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: - build_cpu: + build_cpu_py: runs-on: ubuntu-18.04 strategy: matrix: - python-version: [3.7] - torch: [1.6.0, 1.7.0, 1.8.0, 1.9.0] + python-version: [3.6, 3.8, 3.9] + torch: [1.8.1] include: - - 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 - - torch: 1.8.0 - torchvision: 0.9.0 - python-version: 3.9 - - torch: 1.9.0 - torchvision: 0.10.0 - python-version: 3.8 - - torch: 1.9.0 - torchvision: 0.10.0 - python-version: 3.9 + - torch: 1.8.1 + torchvision: 0.9.1 steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} @@ -75,89 +52,56 @@ jobs: coverage xml coverage report -m - build_cu101: + build_cpu_pt: runs-on: ubuntu-18.04 - container: - image: pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel - env: - LANG: C.UTF-8 strategy: matrix: python-version: [3.7] - torch: [1.6.0+cu101, 1.7.0+cu101, 1.8.0+cu101] + torch: [1.5.1, 1.6.0, 1.7.1, 1.8.1, 1.9.1, 1.10.1, 1.11.0] include: - - torch: 1.6.0+cu101 - torch_version: 1.6 - torchvision: 0.7.0+cu101 - - torch: 1.7.0+cu101 - torch_version: 1.7 - torchvision: 0.8.1+cu101 - - torch: 1.8.0+cu101 - torch_version: 1.8 - torchvision: 0.9.0+cu101 - - torch: 1.8.0+cu101 - torch_version: 1.8 - torchvision: 0.9.0+cu101 - python-version: 3.6 - - torch: 1.8.0+cu101 - torch_version: 1.8 - torchvision: 0.9.0+cu101 - python-version: 3.8 - - torch: 1.8.0+cu101 - torch_version: 1.8 - torchvision: 0.9.0+cu101 - python-version: 3.9 + - torch: 1.5.1 + torchvision: 0.6.1 + - torch: 1.6.0 + torchvision: 0.7.0 + - torch: 1.7.1 + torchvision: 0.8.2 + - torch: 1.8.1 + torchvision: 0.9.1 + - torch: 1.9.1 + torchvision: 0.10.1 + - torch: 1.10.1 + torchvision: 0.11.2 + - torch: 1.11.0 + torchvision: 0.12.0 steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - # Add ppa source repo for python3.9. - - name: Add python3.9 source - run: | - apt-get update && apt-get install -y software-properties-common - add-apt-repository -y ppa:deadsnakes/ppa - if: ${{matrix.python-version == '3.9'}} - # Install python-dev for some packages which require libpython3.Xm. - # Github's setup-python cannot install python3.9-dev, so we have to use apt install. - # Set DEBIAN_FRONTEND=noninteractive to avoid some interactions. - name: Upgrade pip - run: python -m pip install pip --upgrade - - name: Install Python-dev - run: apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python${{matrix.python-version}}-dev - - name: Install system dependencies - run: | - apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 - apt-get clean - apt-get install -y curl + run: pip install pip --upgrade - name: Install Pillow - run: python -m pip install Pillow==6.2.2 - if: ${{matrix.torchvision < 0.5}} - - name: Install librosa and soundfile - run: python -m pip install librosa soundfile - - name: Install lmdb - run: python -m pip install lmdb + run: pip install Pillow + if: ${{matrix.torchvision == '0.4.1'}} - 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 mmocr dependencies - run: | - python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch${{matrix.torch_version}}/index.html - python -m pip install mmdet - python -m pip install -r requirements.txt + 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 + - name: Install MMDet + run: pip install mmdet + - name: Install other dependencies + run: pip install -r requirements.txt - name: Build and install - run: | - rm -rf .eggs - python setup.py check -m -s - TORCH_CUDA_ARCH_LIST=7.0 python -m pip install -e . + run: rm -rf .eggs && pip install -e . - name: Run unittests and generate coverage report run: | coverage run --branch --source mmocr -m pytest tests/ coverage xml coverage report -m - # Only upload coverage report for python3.7 && pytorch1.5 + # Only upload coverage report for python3.7 && pytorch1.8.1 cpu - name: Upload coverage to Codecov - if: ${{matrix.torch == '1.6.0+cu101' && matrix.python-version == '3.7'}} + if: ${{matrix.torch == '1.8.1' && matrix.python-version == '3.7'}} uses: codecov/codecov-action@v1.0.14 with: file: ./coverage.xml @@ -169,23 +113,15 @@ jobs: build_cu102: runs-on: ubuntu-18.04 container: - image: pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel + image: pytorch/pytorch:1.8.1-cuda10.2-cudnn7-devel strategy: matrix: python-version: [3.7] - torch: [1.9.0+cu102] + torch: [1.8.1+cu102] include: - - torch: 1.9.0+cu102 - torch_version: 1.9 - torchvision: 0.10.0+cu102 - - torch: 1.9.0+cu102 - torch_version: 1.9 - torchvision: 0.10.0+cu102 - python-version: 3.8 - - torch: 1.9.0+cu102 - torch_version: 1.9 - torchvision: 0.10.0+cu102 - python-version: 3.9 + - torch: 1.8.1+cu102 + torch_version: 1.8.1 + torchvision: 0.9.1+cu102 steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} @@ -212,8 +148,6 @@ jobs: run: python -m pip install librosa soundfile - name: Install lmdb run: python -m pip install lmdb - - 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 mmocr dependencies run: | python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch${{matrix.torch_version}}/index.html @@ -224,18 +158,14 @@ jobs: rm -rf .eggs python setup.py check -m -s TORCH_CUDA_ARCH_LIST=7.0 python -m pip install -e . - - name: Run unittests and generate coverage report - run: | - coverage run --branch --source mmocr -m pytest tests/ - coverage xml - coverage report -m - test_windows: + + build_windows: runs-on: ${{ matrix.os }} strategy: matrix: os: [windows-2022] - python: [3.8] - platform: [cpu, cu111] + python: [3.7] + platform: [cpu, cu102] steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} @@ -249,7 +179,7 @@ jobs: - name: Install lmdb run: python -m pip install lmdb - name: Install PyTorch - run: python -m pip install torch==1.8.2+${{matrix.platform}} torchvision==0.9.2+${{matrix.platform}} -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html + run: python -m pip install torch==1.8.1+${{matrix.platform}} torchvision==0.9.1+${{matrix.platform}} -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html - name: Install mmocr dependencies run: | python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.8/index.html --only-binary mmcv-full