# This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions name: Python build on: push: branches: - master - 2.3 paths: - '**.py' pull_request: branches: - master jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest] python-version: ["3.7","3.8","3.9","3.10","3.11"] exclude: - os: windows-latest python-version: "3.11" - os: windows-latest python-version: "3.9" - os: windows-latest python-version: "3.8" - os: windows-latest python-version: "3.7" steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install poetry poetry install -E dnssec -E doh -E idna -E trio -E curio -E doq - name: Typecheck run: | poetry run python -m mypy --install-types --non-interactive --disallow-incomplete-defs dns - name: Test with pytest run: | poetry run pytest --cov=dns --cov-branch --cov-report=xml:coverage.xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: files: ./coverage.xml flags: unittests name: codecov-umbrella