# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Python application

on:
  push:
    paths:
    - '**.py'
    - 'src/kibot'
    - 'tests/**'
    - '.github/workflows/pythonapp.yml'
  pull_request:
    paths:
    - '**.py'
    - 'src/kibot'
    - 'tests/**'
    - '.github/workflows/pythonapp.yml'

jobs:
  test:

    runs-on: ubuntu-latest
    container: setsoft/kicad_auto_test:latest

    steps:
    - uses: actions/checkout@v2
    - name: 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.
        flake8 . --count --exit-zero --statistics
    - name: Test with pytest
      env:
        COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
      run: |
        python3-coverage erase
        # Create the caches with macros
        python3-coverage run -a src/kibot --help-outputs > /dev/null
        pytest-3 --test_dir output
        python3-coverage report
        python3-coverage html -d output/htmlcov
        coveralls
    - name: Store results
      if: ${{ always() }}
      uses: actions/upload-artifact@v1
      with:
        name: Test_Output
        path: output

