mmdeploy/.github/workflows/build.yml

195 lines
6.1 KiB
YAML

name: build
on:
push:
paths-ignore:
- ".github/scripts/**"
- "demo/**"
- "docker/**"
- "tools/**"
pull_request:
paths-ignore:
- ".github/scripts/**"
- "demo/**"
- "docker/**"
- "tools/**"
- "docs/**"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build_cpu_model_convert:
runs-on: ubuntu-20.04
strategy:
matrix:
torch: [1.8.0, 1.9.0]
mmcv: [1.4.2]
include:
- torch: 1.8.0
torch_version: torch1.8
torchvision: 0.9.0
- torch: 1.9.0
torch_version: torch1.9
torchvision: 0.10.0
steps:
- uses: actions/checkout@v3
- name: Install PyTorch
run: |
python -m pip install --upgrade pip
python -V
python -m pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html
- name: Install MMCV
run: |
python -m pip install mmcv-full==${{matrix.mmcv}} -f https://download.openmmlab.com/mmcv/dist/cpu/${{matrix.torch_version}}/index.html
python -c 'import mmcv; print(mmcv.__version__)'
- name: Install unittest dependencies
run: |
python -m pip install -U numpy
python -m pip install rapidfuzz==2.15.1
python -m pip install -r requirements.txt
- name: Build and install
run: rm -rf .eggs && python -m pip install -e .
- name: Run python unittests and generate coverage report
run: |
coverage run --branch --source mmdeploy -m pytest -rsE tests
coverage xml
coverage report -m
build_cpu_sdk:
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: update
run: sudo apt update
- name: gcc-multilib
run: |
sudo apt update
sudo apt install libopencv-dev lcov wget -y
- name: Build and run SDK unit test without backend
run: |
mkdir -p build && pushd build
cmake .. \
-DMMDEPLOY_CODEBASES=all \
-DMMDEPLOY_BUILD_SDK=ON \
-DMMDEPLOY_BUILD_SDK_PYTHON_API=OFF \
-DMMDEPLOY_TARGET_DEVICES=cpu \
-DMMDEPLOY_COVERAGE=ON \
-DMMDEPLOY_BUILD_TEST=ON
make -j2
mkdir -p mmdeploy_test_resources/transform
cp ../tests/data/tiger.jpeg mmdeploy_test_resources/transform/
./bin/mmdeploy_tests
lcov --capture --directory . --output-file coverage.info
ls -lah coverage.info
cp coverage.info ../
cross_build_aarch64:
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: update
run: sudo apt update
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: gcc-multilib
run: |
sh -x tools/scripts/ubuntu_cross_build_aarch64.sh
build_cuda102:
runs-on: ubuntu-20.04
container:
image: pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel
env:
FORCE_CUDA: 1
strategy:
matrix:
python-version: [3.8]
torch: [1.9.0+cu102]
mmcv: [1.4.2]
include:
- torch: 1.9.0+cu102
torch_version: torch1.9
torchvision: 0.10.0+cu102
steps:
- uses: actions/checkout@v3
- name: Install system dependencies
run: |
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A4B469963BF863CC
apt-get update && apt-get install -y git
- 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 dependencies
run: |
python -V
python -m pip install -U pip
python -m pip install mmcv-full==${{matrix.mmcv}} -f https://download.openmmlab.com/mmcv/dist/cu102/${{matrix.torch_version}}/index.html
python -m pip install -r requirements.txt
python -m pip install rapidfuzz==2.15.1
- name: Build and install
run: |
rm -rf .eggs && python -m pip install -e .
python tools/check_env.py
- name: Run unittests and generate coverage report
run: |
coverage run --branch --source mmdeploy -m pytest -rsE tests
coverage xml
coverage report -m
build_cuda111:
runs-on: ubuntu-20.04
container:
image: pytorch/pytorch:1.8.0-cuda11.1-cudnn8-devel
strategy:
matrix:
python-version: [3.8]
torch: [1.8.0+cu111]
mmcv: [1.4.2]
include:
- torch: 1.8.0+cu111
torch_version: torch1.8
torchvision: 0.9.0+cu111
steps:
- uses: actions/checkout@v3
- name: Install system dependencies
run: |
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A4B469963BF863CC
apt-get update && apt-get install -y git
- name: Install dependencies
run: |
python -V
python -m pip install -U pip
python -m pip install mmcv-full==${{matrix.mmcv}} -f https://download.openmmlab.com/mmcv/dist/cu111/${{matrix.torch_version}}/index.html
python -m pip install -r requirements.txt
python -m pip install rapidfuzz==2.15.1
- name: Build and install
run: |
rm -rf .eggs && python -m pip install -e .
python tools/check_env.py
- name: Run unittests and generate coverage report
run: |
coverage run --branch --source mmdeploy -m pytest -rsE tests
coverage xml
coverage report -m
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v2
with:
file: ./coverage.xml,./coverage.info
flags: unittests
env_vars: OS,PYTHON,CPLUS
name: codecov-umbrella
fail_ci_if_error: false