Skip to content

build(deps-dev): bump mypy from 1.11.2 to 1.12.0 (#482) #1003

build(deps-dev): bump mypy from 1.11.2 to 1.12.0 (#482)

build(deps-dev): bump mypy from 1.11.2 to 1.12.0 (#482) #1003

Workflow file for this run

---
name: test
'on':
push:
branches:
- master
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
env:
DJANGO_DATABASE_ENGINE: "${{ matrix.env.DJANGO_DATABASE_ENGINE || 'django.db.backends.sqlite3' }}"
DJANGO_DATABASE_USER: django
DJANGO_DATABASE_PASSWORD: passwd123
DJANGO_DATABASE_NAME: db
DJANGO_DATABASE_HOST: 127.0.0.1
DJANGO_DATABASE_PORT: "${{ matrix.env.DJANGO_DATABASE_PORT }}"
strategy:
fail-fast: false
matrix:
python-version: ['3.10', '3.11', '3.12']
django-version:
- 'Django~=4.2.0'
- 'Django~=5.0.0'
docker-compose-services: ['']
additional-dependencies: ['']
env: [{}]
integration-test-setup-script: ['']
include:
- python-version: '3.9'
django-version: 'Django~=4.1.0'
docker-compose-services: ''
additional-dependencies: ''
env: {}
integration-test-setup-script: ''
- python-version: '3.12'
django-version: 'Django~=5.0.0'
docker-compose-services: postgresql-db
additional-dependencies: psycopg2
env:
DJANGO_DATABASE_ENGINE: 'django.db.backends.postgresql'
DJANGO_DATABASE_PORT: 5432
# TODO: reenable
# - python-version: '3.12'
# django-version: 'Django~=5.0.0'
# docker-compose-services: mysql-db
# additional-dependencies: mysqlclient
# env:
# DJANGO_DATABASE_ENGINE: 'django.db.backends.mysql'
# DJANGO_DATABASE_PORT: 3306
# integration-test-setup-script: >-
# ./.dev/scripts/ci-mysql-setup-integration-tests.sh
- python-version: '3.12'
django-version: 'Django~=5.0.0'
docker-compose-services: maria-db
additional-dependencies: mysqlclient
env:
DJANGO_DATABASE_ENGINE: 'django.db.backends.mysql'
DJANGO_DATABASE_PORT: 3307
integration-test-setup-script: >-
./.dev/scripts/ci-mysql-setup-integration-tests.sh
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install poetry
run: |
curl -sSL "https://install.python-poetry.org" | python
# Adding `poetry` to `$PATH`:
echo "$HOME/.poetry/bin" >> $GITHUB_PATH
- name: Install dependencies
run: |
poetry config virtualenvs.in-project true
poetry run pip install -U pip
poetry install
poetry run pip install \
--upgrade \
"${{ matrix.django-version }}" \
${{ matrix.additional-dependencies }}
- name: Pull and build docker compose services
if: ${{ matrix.docker-compose-services }}
run: |
docker compose pull ${{ matrix.docker-compose-services }}
docker compose up --detach ${{ matrix.docker-compose-services }}
- name: Wait for docker-compose services
if: ${{ matrix.docker-compose-services }}
run: |
sudo apt-get update && sudo apt-get install -y wait-for-it
wait-for-it \
--host='localhost' \
--port="${{ matrix.env.DJANGO_DATABASE_PORT }}" \
--timeout=30 \
--strict
- name: "Run checks for python ${{ matrix.python-version }} and django ${{ matrix.django-version }}"
run: make test
- name: >-
Run integration tests for python ${{ matrix.python-version }}
and django ${{ matrix.django-version }} using
${{ matrix.docker-compose-services }}
if: ${{ matrix.docker-compose-services }}
run: |
if [ -f '${{ matrix.integration-test-setup-script }}' ]; then
bash '${{ matrix.integration-test-setup-script }}'
fi
CHECK_OUTPUT="$(poetry run python django_test_app/manage.py check 2>&1 || true)"
echo "${CHECK_OUTPUT}"
echo "${CHECK_OUTPUT}" \
| grep --quiet --extended-regexp '^System check identified 4 issues'
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: ./coverage.xml
- name: Stop docker-compose services
if: ${{ always() && matrix.docker-compose-services }}
run: docker compose down || true