Stephen-RA-King/pynball

View on GitHub
.github/workflows/tests.yml

Summary

Maintainability
Test Coverage
# https://docs.github.com/en/actions
# https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: test

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  workflow_dispatch:
    branches: [main]

jobs:
  test:
    # Step 1. Set up operating system
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [windows-latest]
        python-version: ["3.9.13"]
        exclude:
          - os: windows-latest
            python-version: "3.8"
    steps:
      # Step 3. Check-out repository so we can access its contents
      - uses: actions/checkout@v4
      # Step 2. Set up Python 3.9
      - uses: actions/setup-python@v4
        with:
          python-version: 3.9
      # step 3. Install the dependencies from requirements.txt file
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip setuptools wheel
          pip install flake8 pytest pytest-cov
          pip install -r requirements/test.txt
      # Step 5. Install package
      - name: Install package
        run: |
          pip install -e .
      # Step 5. Lint the files with flake8
      - 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. The GitHub editor is 127 chars wide
          flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
        continue-on-error: true
      # Step 6. Run the tests
      - name: Test with pytest
        run: |
          pytest tests/ --cov=pynball --cov-report=xml
      # Step 7. Use Codecov to track coverage
      - uses: codecov/codecov-action@v3
        with:
          file: ./coverage.xml
          fail_build_if_error: true