name: backend-ort

on:
  push:
    paths-ignore:
      - "demo/**"
      - "tools/**"

  pull_request:
    paths-ignore:
      - "demo/**"
      - "tools/**"
      - "docs/**"

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build_ort:
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        python-version: [3.7]
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3
        with:
          submodules: 'recursive'
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}
      - name: Install mmdeploy
        run: |
          python -m pip install torch==1.8.2 torchvision==0.9.2 --extra-index-url https://download.pytorch.org/whl/lts/1.8/cpu
          python -m pip install mmcv-lite openmim
          python tools/scripts/build_ubuntu_x64_ort.py 8
          python -c 'import mmdeploy.apis.onnxruntime as ort_api; assert ort_api.is_available(with_custom_ops=True)'
      - name: test mmpretrain full pipeline
        run: |
          python -m mim install $(cat requirements/codebases.txt | grep mmpretrain)
          export MMDEPLOY_DIR=$(pwd)
          export ONNXRUNTIME_DIR=$MMDEPLOY_DIR/../mmdeploy-dep/onnxruntime-linux-x64-1.8.1
          export LD_LIBRARY_PATH=$ONNXRUNTIME_DIR/lib:$MMDEPLOY_DIR/build/install/lib:$LD_LIBRARY_PATH
          bash .github/scripts/linux/test_full_pipeline.sh ort cpu
