name: test-n-publish

on: [push, pull_request]

jobs:
  test-n-publish:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: [3.7, 3.8, 3.9, "3.10"]
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-python@v2
      name: Set up Python ${{ matrix.python-version }}
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install
      run: |
        python -m pip install wheel
        python -m pip install --upgrade pip
        python -m pip install codecov requests
        python -m pip install bs4
        sudo apt-get -y install graphviz libgraphviz-dev pkg-config
        python -m pip install pygraphviz
        python -m pip install kerncraft
        python -m pip install -e .
    - name: Test
      run: |
        coverage run -p tests/all_tests.py
    - uses: codecov/codecov-action@v1
    - name: Build package
      run: |
        python setup.py build sdist bdist_wheel
    - name: Publish to PyPI
      if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
      uses: pypa/gh-action-pypi-publish@release/v1
      with:
        skip_existing: true
        user: __token__
        password: ${{ secrets.pypi_password }}
