diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 56f3695..c25ed7a 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -5,42 +5,46 @@ name: tests on: push: - branches: [ master ] + branches: [ main, develop ] pull_request: - branches: [ master ] + branches: [ main ] jobs: build: - - runs-on: ubuntu-latest strategy: fail-fast: false matrix: - python-version: [3.7, 3.8, 3.9] - + python-version: [ 3.7, 3.8, 3.9, "3.10" ] + poetry-version: [ 1.0, 1.1.11 ] + os: [ ubuntu-18.04, macos-latest, windows-latest ] + runs-on: ${{ matrix.os }} steps: - - name: (1/5) Checkout - uses: actions/checkout@v2 - - - name: (2/5) Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - - name: (3/5) Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install flake8 pytest - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - if [ -f setup.py ]; then python setup.py install; fi - - - name: (4/5) Lint with flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - - name: (5/5) Test with pytest - run: | - pytest + - name: (1/6) Checkout + uses: actions/checkout@v2 + + - name: (2/6) Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: (3/6) Install poetry + uses: abatilo/actions-poetry@v2.0.0 + with: + poetry-version: ${{ matrix.poetry-version }} + + - name: (4/6) Install dependencies + run: | + poetry install + + - name: (5/6) Lint with flake8 + run: | + python -m pip install --upgrade pip + python -m pip install flake8 pytest + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + + - name: (6/6) Test with pytest + run: | + poetry run pytest