--- name: build on: [push, pull_request] jobs: build: name: build (Python ${{ matrix.python-version }}, Django ${{ matrix.django-version }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ['3.11', '3.12'] django-version: ['4.2', '5.0', 'dev'] exclude: - python-version: '3.12' django-version: '4.2' - python-version: '3.11' django-version: 'dev' services: mysql: image: mysql:latest env: MYSQL_DATABASE: mysql MYSQL_ROOT_PASSWORD: mysql ports: - 3306:3306 options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 steps: - name: Install pycups and words dependency run: | sudo sed -i 's/azure\.//' /etc/apt/sources.list sudo apt-get -y update sudo apt-get install libcups2-dev wamerican - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Get pip cache dir id: pip-cache run: | echo "dir=$(pip cache dir)" >>$GITHUB_OUTPUT - name: Cache uses: actions/cache@v3 with: path: ${{ steps.pip-cache.outputs.dir }} key: ${{ matrix.python-version }}-v1-${{ hashFiles('**/setup.py') }}-${{ hashFiles('**/tox.ini') }} restore-keys: | ${{ matrix.python-version }}-v1- - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install -r https://raw.githubusercontent.com/clinicedc/edc/develop/requirements.tests/tox.txt - name: Tox tests run: | tox -v env: DJANGO: ${{ matrix.django-version }} - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: name: Python ${{ matrix.python-version }}