name: Python CI
on:
push:
branches:
- "master"
paths:
- 'huak-py/**'
- '.github/workflows/ci-python.yaml'
pull_request:
branches:
- "master"
paths:
- 'huak-py/**'
- '.github/workflows/ci-python.yaml'
jobs:
tests:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.10']
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Setup python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- name: Install and configure Poetry
uses: snok/install-poetry@v1
with:
version: 1.1.13
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v2
with:
path: huak-py/.venv
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: cd huak-py && poetry install --no-interaction --no-root
- name: Install library
run: cd huak-py && poetry install --no-interaction
- name: Run lint
run: cd huak-py && make lint
- name: Run mypy
run: cd huak-py && make lint-types
- name: Run fmt check
run: cd huak-py && make fmt-check
- name: Run tests
run: cd huak-py && make test