name: build on: push: paths-ignore: - '**.md' - 'docs/**' - '.readthedocs.yml' - '.gitigore' - 'LICENSE' pull_request: paths-ignore: - '**.md' - 'docs/**' - '.readthedocs.yml' - '.gitigore' - 'LICENSE' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: test_linux: runs-on: ubuntu-18.04 container: image: pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel env: LC_ALL: C.UTF-8 LANG: C.UTF-8 strategy: matrix: python-version: [3.7] torch: [1.5.0+cu101, 1.8.0+cu101] include: - torch: 1.5.0+cu101 torchvision: 0.6.0+cu101 - torch: 1.8.0+cu101 torchvision: 0.9.0+cu101 - torch: 1.8.0+cu101 torchvision: 0.9.0+cu101 python-version: 3.6 - torch: 1.8.0+cu101 torchvision: 0.9.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: Fetch GPG keys run: | apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub - 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 install -y git libgl1 libglib2.0-0 - name: Upgrade setuptools and pip run: python -m pip install --upgrade setuptools pip - name: Install wheel # wheel is the default package of local environment but docker environment misses the package so we manually install it run: python -m pip install wheel - name: Install PyTorch run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html - name: Build and install run: rm -rf .eggs && python -m pip install -e . - name: Validate the installation run: python -c "import mim" - name: Install unittest dependencies run: python -m pip install -r requirements/tests.txt - name: Run unittests and generate coverage report run: | coverage run --branch --source=mim -m pytest tests/ coverage xml coverage report -m - name: Run unittests with click < 8.0.0 run: | python -m pip install click==7.1.2 pytest tests/ if: ${{matrix.python-version == '3.8'}} - name: Upload coverage to Codecov uses: codecov/codecov-action@v1.0.10 with: file: ./coverage.xml flags: unittests env_vars: OS,PYTHON name: codecov-umbrella fail_ci_if_error: false test_windows: runs-on: windows-latest strategy: matrix: python-version: [3.7] torch: [1.5.0, 1.8.0] include: - torch: 1.5.0 torchvision: 0.6.0 - torch: 1.8.0 torchvision: 0.9.0 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 setuptools run: pip install --upgrade setuptools - name: Install wheel # wheel is the default package of local environment but docker environment misses the package so we manually install it run: pip install wheel - name: Install PyTorch run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html - name: Build and install run: pip install -e . - name: Validate the installation run: python -c "import mim" - name: Install unittest dependencies run: pip install -r requirements/tests.txt - name: Run unittests and generate coverage report run: | coverage run --branch --source=mim -m pytest tests/ coverage xml coverage report -m - name: Upload coverage to Codecov uses: codecov/codecov-action@v1.0.10 with: file: ./coverage.xml flags: unittests env_vars: OS,PYTHON name: codecov-umbrella fail_ci_if_error: false test_macos: runs-on: macos-latest strategy: matrix: torch: [1.8.0, 1.9.0] include: - torch: 1.8.0 torchvision: 0.9.0 - torch: 1.9.0 torchvision: 0.10.0 steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 uses: actions/setup-python@v2 with: python-version: 3.7 - name: Install PyTorch run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} --no-cache-dir - name: Build and install run: pip install -e . - name: Validate the installation run: python -c "import mim" - name: Install unittest dependencies run: pip install -r requirements/tests.txt - name: Run unittests run: pytest tests/