Dulwich.io dulwich / e5a028d .github / workflows / pythonpackage.yml
e5a028d

Tree @e5a028d (Download .tar.gz)

pythonpackage.yml @e5a028draw · history · blame

name: Python package

on: [push, pull_request]

jobs:
  build:

    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        python-version: [3.5, 3.6, 3.7, 3.8, pypy3]
        exclude:
          # sqlite3 exit handling seems to get in the way
          - os: macos-latest
            python-version: pypy3
          # doesn't support passing in bytestrings to os.scandir
          - os: windows-latest
            python-version: pypy3
          # path encoding
          - os: windows-latest
            python-version: 3.5
          # path encoding
          - os: macos-latest
            python-version: 3.5
      fail-fast: false

    steps:
    - uses: actions/checkout@v2
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v2
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -U pip coverage codecov flake8 fastimport
    - name: Install mypy
      run: |
        pip install -U mypy
      if: "matrix.python-version != 'pypy3'"
    - name: Style checks
      run: |
        python -m flake8
    - name: Typing checks
      run: |
        python -m mypy dulwich
      if: "matrix.python-version != 'pypy3'"
    - name: Build
      run: |
        python setup.py build_ext -i
    - name: Coverage test suite run
      run: |
        python -m coverage run -p -m unittest dulwich.tests.test_suite
    - name: Upload coverage details
      run: |
        codecov