Credit @thealex55 for the detailed analysis in #1087 #2029
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: CI | |
on: | |
pull_request: | |
branches: [master] | |
push: | |
branches: [master] | |
jobs: | |
unit-tests: | |
name: "Python ${{ matrix.python-version }} ${{ matrix.tox-env }}" | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] | |
tox-env: [""] | |
steps: | |
- name: Step 1 - Checkout repository | |
uses: actions/checkout@v4 | |
- name: Step 2 - Install python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "${{ matrix.python-version }}" | |
- name: Step 3 - Install system deps for extras | |
run: | | |
sudo apt update && sudo apt-get install libsnappy-dev | |
# azure-identity imports ctype, and the ctype version available in the | |
# Ubuntu 22.04 runner is referencing libffi.so.7, which is not | |
# available. This is a workaround to install the libffi7 package. | |
sudo apt-get install libffi7 | |
- name: Step 4 - Install dependencies to run tox | |
run: | | |
# We need to pin pip to 25.0.1 because of the following pip issue: | |
# https://github.com/jazzband/pip-tools/issues/2176 | |
python -m pip install 'pip<=25.0.1' | |
python -m pip install setuptools wheel | |
python -m pip install -r requirements-tox.txt | |
python -m pip install tox-gh-actions | |
- name: Step 5 - Run tox targets for ${{ matrix.python-version }} ${{matrix.tox-env}} | |
run: | | |
if [[ -z "${{ matrix.tox-env }}" ]] | |
then | |
python -m tox | |
else | |
python -m tox -e ${{ matrix.tox-env }} | |
fi |