name: Python package
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: [ 3.6, 3.7, 3.8, 3.9.0-alpha - 3.9 ]
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install flake8 flake8-import-order mypy wheel coverage
          pip install -r requirements.txt
          sudo apt-get install x11-apps dmz-cursor-theme
      - name: Lint with flake8
        run: flake8 .
      - name: Typecheck with mypy
        run: mypy .
      - name: Test packages
        run: python setup.py sdist bdist_wheel
      - name: Test wheel install
        run: pip install dist/*.whl
      - name: Test with sample/crosshair.cur
        run: |
          coverage run -m win2xcur.main.win2xcur sample/crosshair.cur -o /tmp
          ls -l /tmp/crosshair
      - name: Test with animated cursors
        run: |
          wget http://www.anicursor.com/waiting.zip
          mkdir ani output
          unzip waiting.zip -d ani
          coverage run -a -m win2xcur.main.win2xcur -s ani/*.ani -o output
          ls -l output/*
      - name: Test with dmz-cursor-theme
        run: |
          mkdir dmz-white
          coverage run -a -m win2xcur.main.x2wincur /usr/share/icons/DMZ-White/cursors/* -o dmz-white
          ls -l dmz-white/*
      - name: Generating coverage report
        run: coverage xml
      - uses: codecov/codecov-action@v1