ci: test on more python versions #784
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: test | |
| permissions: | |
| contents: read | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| branches: | |
| - master | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint: | |
| name: Lint datadogpy files on Python ${{ matrix.python-version }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # In the future, we need to add support for Python 2.7 and Python 3.14+ | |
| # but for now, those are failing. | |
| python-version: ['3.8'] | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install tox | |
| # - name: Run black | |
| # run: pre-commit run --all-files --hook-stage=manual black | |
| - name: Run mypy | |
| run: tox -e mypy | |
| - name: Run flake8 | |
| run: tox -e flake8 | |
| run: | |
| name: Python ${{ matrix.python-version }} on ${{ startsWith(matrix.os, 'macos-') && 'macOS' || startsWith(matrix.os, 'windows-') && 'Windows' || 'Linux' }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-22.04] | |
| # In the future, we need to add support for Python 2.7 and 3.4, as we officially | |
| # support those versions. However, support for those versions has been removed from | |
| # setup-python so we will need to find a workaround. | |
| python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy2.7', 'pypy3.8'] | |
| # os: [ubuntu-latest, windows-latest, macos-latest] | |
| # python-version: ['2.7', '3.7', '3.8', '3.9', '3.10', 'pypy-2.7', 'pypy-3.8'] | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Set constraints for python2.7 | |
| # Latest PyYaml supported version for python 2.7 is 5.4.1 which requires | |
| # cython<3 to build. See: https://github.com/yaml/pyyaml/issues/724 | |
| if: ${{ matrix.python-version == 'pypy2.7' }} | |
| run: | | |
| echo "cython<3" > /tmp/constraints.txt | |
| echo "PIP_CONSTRAINT=/tmp/constraints.txt" >> $GITHUB_ENV | |
| - name: Set TOXENV | |
| run: | | |
| version="${{ matrix.python-version }}" | |
| if [[ "$version" == pypy* ]]; then | |
| echo "TOXENV=$version" >> $GITHUB_ENV | |
| else | |
| echo "TOXENV=py${version//./}" >> $GITHUB_ENV | |
| fi | |
| - name: Install tox | |
| run: pip install tox | |
| - name: Run unit tests | |
| run: tox | |
| - name: Run integration tests on cassettes | |
| run: tox -e integration -- --vcr-record=none | |
| - name: Run admin integration tests on cassettes | |
| run: tox -e integration-admin -- --vcr-record=none |