name: Python tests

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  test:
    name: Run tests on ${{ matrix.os }} with Python ${{ matrix.python }}
    strategy:
      matrix:
        os: [ubuntu-latest, macOS-latest]
        python: ['3.8']
        torch: ['1.5.0']
        torchvision: ['0.6.0']
    runs-on: ${{ matrix.os }}

    steps:
    - uses: actions/checkout@v2
    - name: Set up Python ${{ matrix.python }}
      uses: actions/setup-python@v1
      with:
        python-version: ${{ matrix.python }}
    - name: Install testing dependencies
      run: |
        python -m pip install --upgrade pip
        pip install pytest pytest-timeout
    - name: Install torch on mac
      if: startsWith(matrix.os, 'macOS')
      run: pip install torch==${{ matrix.torch }} torchvision==${{ matrix.torchvision }}
    - name: Install torch on ubuntu
      if: startsWith(matrix.os, 'ubuntu')
      run: pip install torch==${{ matrix.torch }}+cpu torchvision==${{ matrix.torchvision }}+cpu -f https://download.pytorch.org/whl/torch_stable.html
    - name: Install requirements
      run: |
        if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
        pip install git+https://github.com/mapillary/inplace_abn.git@v1.0.11
    - name: Run tests
      run: |
        pytest -vv --durations=0 ./tests
