name: CI

on: [push]

jobs:
    build:
        runs-on: ubuntu-latest
        strategy:
            max-parallel: 4
            matrix:
                python-version: ['3.9', '3.10', '3.11']

        steps:
            - uses: actions/checkout@v1
            - name: Set up Python ${{ matrix.python-version }}
              uses: actions/setup-python@v1
              with:
                  python-version: ${{ matrix.python-version }}
            - name: Install dependencies
              run: |
                  python -m pip install --upgrade pip
                  pip install pipenv
                  pipenv install --dev
            - name: Style check
              run: |
                  pipenv run black
                  pipenv run isort
                  pipenv run flake8
            - name: Test with pytest
              run: |
                  chmod -w data/read_only.fasta
                  pipenv run tests
            - name: Upload to Codecov
              if: github.event.repository.fork == false
              uses: codecov/codecov-action@v1.0.2
              with:
                  token: ${{ secrets.CODECOV_TOKEN }}
                  file: coverage.xml
            - name: Test install
              run: |
                  pip install -e .
