From dc23e5075b91b1960a9e111b154abde4d180326d Mon Sep 17 00:00:00 2001 From: Bogdan Petrea Date: Mon, 12 Feb 2024 12:10:21 +0200 Subject: [PATCH] Add a github action for CI --- .github/workflows/ci.yml | 49 +++++++++++++++++++ .../issue_tracker/issue_tracker/settings.py | 18 +++++-- exported_requirements.txt | 23 +++++++++ 3 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 exported_requirements.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..aa1826e --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,49 @@ +name: django-woah CI + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + max-parallel: 2 + matrix: + python-version: [3.11, 3.12] + + services: + mysql: + image: mysql:8.0 + env: + MYSQL_DATABASE: test_db + MYSQL_ROOT_PASSWORD: secret + ports: + - 3306:3306 + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install Dependencies + run: | + python -m pip install --upgrade pip + pip install -r exported_requirements.txt + pip install pymysql==1.1.0 + - name: Run Tests + env: + DB_ENGINE: django.db.backends.mysql + DB_NAME: test_db + DB_USER: root + DB_PASSWORD: secret + DB_HOST: 127.0.0.1 + DB_PORT: 3306 + run: | + cd django_woah/ && pytest -vv + cd .. + PYTHONPATH=. DJANGO_SETTINGS_MODULE=issue_tracker.settings pytest -vv --no-migrations examples/issue_tracker diff --git a/examples/issue_tracker/issue_tracker/settings.py b/examples/issue_tracker/issue_tracker/settings.py index 5a017a9..4d8b004 100644 --- a/examples/issue_tracker/issue_tracker/settings.py +++ b/examples/issue_tracker/issue_tracker/settings.py @@ -9,6 +9,7 @@ For the full list of settings and their values, see https://docs.djangoproject.com/en/4.2/ref/settings/ """ +import os from pathlib import Path @@ -26,7 +27,6 @@ ALLOWED_HOSTS = [] - # Application definition AUTH_USER_MODEL = "base_app.Account" @@ -78,10 +78,22 @@ # Database # https://docs.djangoproject.com/en/4.2/ref/settings/#databases +try: + import pymysql + + pymysql.version_info = (1, 4, 6, "final", 0) # change mysqlclient version + pymysql.install_as_MySQLdb() +except ImportError: + pass + DATABASES = { "default": { - "ENGINE": "django.db.backends.sqlite3", - "NAME": BASE_DIR / "db.sqlite3", + "ENGINE": os.environ.get("DB_ENGINE", "django.db.backends.sqlite3"), + "NAME": os.environ.get("DB_NAME", BASE_DIR / "db.sqlite3"), + "USER": os.environ.get("DB_USER", ""), + "PASSWORD": os.environ.get("DB_PASSWORD", ""), + "HOST": os.environ.get("DB_HOST", ""), + "PORT": os.environ.get("DB_PORT", ""), } } diff --git a/exported_requirements.txt b/exported_requirements.txt new file mode 100644 index 0000000..1636c18 --- /dev/null +++ b/exported_requirements.txt @@ -0,0 +1,23 @@ +asgiref==3.7.2 ; python_version >= "3.11" and python_version < "4.0" +colorama==0.4.6 ; python_version >= "3.11" and python_version < "4.0" and sys_platform == "win32" +django-stubs-ext==4.2.7 ; python_version >= "3.11" and python_version < "4.0" +django-stubs==4.2.7 ; python_version >= "3.11" and python_version < "4.0" +django==4.2.10 ; python_version >= "3.11" and python_version < "4.0" +djangorestframework==3.14.0 ; python_version >= "3.11" and python_version < "4.0" +iniconfig==2.0.0 ; python_version >= "3.11" and python_version < "4.0" +mpmath==1.3.0 ; python_version >= "3.11" and python_version < "4.0" +mypy-extensions==1.0.0 ; python_version >= "3.11" and python_version < "4.0" +mypy==1.8.0 ; python_version >= "3.11" and python_version < "4.0" +packaging==23.2 ; python_version >= "3.11" and python_version < "4.0" +pluggy==1.4.0 ; python_version >= "3.11" and python_version < "4.0" +pytest-django==4.8.0 ; python_version >= "3.11" and python_version < "4.0" +pytest==7.4.4 ; python_version >= "3.11" and python_version < "4.0" +pytz==2024.1 ; python_version >= "3.11" and python_version < "4.0" +ruff==0.1.15 ; python_version >= "3.11" and python_version < "4.0" +sqlparse==0.4.4 ; python_version >= "3.11" and python_version < "4.0" +sympy==1.12 ; python_version >= "3.11" and python_version < "4.0" +types-pytz==2024.1.0.20240203 ; python_version >= "3.11" and python_version < "4.0" +types-pyyaml==6.0.12.12 ; python_version >= "3.11" and python_version < "4.0" +typing-extensions==4.9.0 ; python_version >= "3.11" and python_version < "4.0" +tzdata==2023.4 ; python_version >= "3.11" and python_version < "4.0" and sys_platform == "win32" +uuid6==2023.5.2 ; python_version >= "3.11" and python_version < "4.0"