From 9e59beca8d3b71f40d2bc5678ad4d5e52faf246a Mon Sep 17 00:00:00 2001 From: Inada Naoki Date: Tue, 19 Oct 2021 20:45:21 +0900 Subject: [PATCH 1/9] Action: Add Django test --- .github/workflows/django.yaml | 51 ++++++++++++++++++++++++++++ .travis.yml | 63 ----------------------------------- ci/test_mysql.py | 8 ++--- 3 files changed, 55 insertions(+), 67 deletions(-) create mode 100644 .github/workflows/django.yaml delete mode 100644 .travis.yml diff --git a/.github/workflows/django.yaml b/.github/workflows/django.yaml new file mode 100644 index 00000000..42414e64 --- /dev/null +++ b/.github/workflows/django.yaml @@ -0,0 +1,51 @@ +name: Django compat test + +on: + push: + pull_request: + +jobs: + build: + runs-on: ubuntu-20.04 + steps: + - name: Start MySQL + run: | + sudo systemctl start mysql.service + mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot -proot mysql + mysql -uroot -proot -e "CREATE USER 'scott'@'%' IDENTIFIED BY 'tiger'; GRANT ALL ON *.* TO scott;" + + - uses: actions/cache@v2 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-django-pip-1 + restore-keys: | + ${{ runner.os }}-pip- + + - name: Set up Python 3.10 + uses: actions/setup-python@v2 + with: + python-version: "3.10" + + - uses: actions/checkout@v2 + with: + fetch-depth: 2 + + - name: Install mysqlclient + env: + PIP_NO_PYTHON_VERSION_WARNING: 1 + PIP_DISABLE_PIP_VERSION_CHECK: 1 + run: | + pip install -U pytest pytest-cov + pip install . + # pip install mysqlclient # Use stable version + + - name: Run Django test + env: + DJANGO_VERSION: "2.2.24" + run: | + wget https://github.com/django/django/archive/${DJANGO_VERSION}.tar.gz + tar xf ${DJANGO_VERSION}.tar.gz + pip install django-${DJANGO_VERSION}/ + cp ci/test_mysql.py django-${DJANGO_VERSION}/tests/ + cd django-${DJANGO_VERSION}/tests/ + ./runtests.py --parallel=2 --settings=test_mysql diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 75c6d425..00000000 --- a/.travis.yml +++ /dev/null @@ -1,63 +0,0 @@ -dist: bionic -language: python - -# See aws s3 ls s3://travis-python-archives/binaries/ubuntu/18.04/x86_64/ -python: - - "nightly" - - "pypy3" - -cache: pip - -services: - - mysql - -install: - - pip install -U pip - - pip install -U mock coverage pytest pytest-cov codecov - -env: - global: - - TESTDB=travis.cnf - -before_script: - - "mysql --help" - - "mysql --print-defaults" - - "mysql -e 'create database mysqldb_test charset utf8mb4;'" - -script: - - pip install -e . - - pytest --cov ./MySQLdb - -after_success: - - codecov - -jobs: - fast_finish: true - include: - - &django_2_2 - name: "Django 2.2 test" - env: - - DJANGO_VERSION=2.2.7 - python: "3.8" - install: - - pip install -U pip - - wget https://github.com/django/django/archive/${DJANGO_VERSION}.tar.gz - - tar xf ${DJANGO_VERSION}.tar.gz - - pip install -e django-${DJANGO_VERSION}/ - - cp ci/test_mysql.py django-${DJANGO_VERSION}/tests/ - - pip install . - - before_script: - - mysql -e 'create user django identified by "secret"' - - mysql -e 'grant all on *.* to django' - - mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql mysql - - script: - - cd django-${DJANGO_VERSION}/tests/ - - ./runtests.py --parallel=2 --settings=test_mysql - #- &django_3_0 - # <<: *django_2_2 - # name: "Django 3.0 test (Python 3.8)" - # python: "3.8" - -# vim: sw=2 ts=2 sts=2 diff --git a/ci/test_mysql.py b/ci/test_mysql.py index 88a747a6..e285f4cf 100644 --- a/ci/test_mysql.py +++ b/ci/test_mysql.py @@ -16,17 +16,17 @@ "default": { "ENGINE": "django.db.backends.mysql", "NAME": "django_default", - "USER": "django", "HOST": "127.0.0.1", - "PASSWORD": "secret", + "USER": "scott", + "PASSWORD": "tiger", "TEST": {"CHARSET": "utf8mb4", "COLLATION": "utf8mb4_general_ci"}, }, "other": { "ENGINE": "django.db.backends.mysql", "NAME": "django_other", - "USER": "django", "HOST": "127.0.0.1", - "PASSWORD": "secret", + "USER": "scott", + "PASSWORD": "tiger", "TEST": {"CHARSET": "utf8mb4", "COLLATION": "utf8mb4_general_ci"}, }, } From 927e1bbefd59b67427ed98c874d3340afe27cf76 Mon Sep 17 00:00:00 2001 From: Inada Naoki Date: Tue, 19 Oct 2021 21:18:46 +0900 Subject: [PATCH 2/9] Don't run parallel --- .github/workflows/django.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/django.yaml b/.github/workflows/django.yaml index 42414e64..63514a49 100644 --- a/.github/workflows/django.yaml +++ b/.github/workflows/django.yaml @@ -35,7 +35,7 @@ jobs: PIP_NO_PYTHON_VERSION_WARNING: 1 PIP_DISABLE_PIP_VERSION_CHECK: 1 run: | - pip install -U pytest pytest-cov + pip install -U pytest pytest-cov tblib pip install . # pip install mysqlclient # Use stable version @@ -48,4 +48,4 @@ jobs: pip install django-${DJANGO_VERSION}/ cp ci/test_mysql.py django-${DJANGO_VERSION}/tests/ cd django-${DJANGO_VERSION}/tests/ - ./runtests.py --parallel=2 --settings=test_mysql + ./runtests.py --settings=test_mysql From 7e0d724eee6e15c9b2628eca51b2d0f3aba6cab8 Mon Sep 17 00:00:00 2001 From: Inada Naoki Date: Wed, 20 Oct 2021 13:26:59 +0900 Subject: [PATCH 3/9] fixup --- .github/workflows/django.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/django.yaml b/.github/workflows/django.yaml index 63514a49..dcdafb91 100644 --- a/.github/workflows/django.yaml +++ b/.github/workflows/django.yaml @@ -45,7 +45,8 @@ jobs: run: | wget https://github.com/django/django/archive/${DJANGO_VERSION}.tar.gz tar xf ${DJANGO_VERSION}.tar.gz - pip install django-${DJANGO_VERSION}/ cp ci/test_mysql.py django-${DJANGO_VERSION}/tests/ cd django-${DJANGO_VERSION}/tests/ + pip install .. + pip install requirements/py3.txt ./runtests.py --settings=test_mysql From 5d4a70ff9950f0501fb807ec3cea6da997d7d15b Mon Sep 17 00:00:00 2001 From: Inada Naoki Date: Wed, 20 Oct 2021 13:34:22 +0900 Subject: [PATCH 4/9] fixup --- .github/workflows/django.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/django.yaml b/.github/workflows/django.yaml index dcdafb91..d0cf6ce4 100644 --- a/.github/workflows/django.yaml +++ b/.github/workflows/django.yaml @@ -48,5 +48,5 @@ jobs: cp ci/test_mysql.py django-${DJANGO_VERSION}/tests/ cd django-${DJANGO_VERSION}/tests/ pip install .. - pip install requirements/py3.txt + pip install -r requirements/py3.txt ./runtests.py --settings=test_mysql From 8a75d3484825977cc5156baf5cb4edd7d6931064 Mon Sep 17 00:00:00 2001 From: Inada Naoki Date: Wed, 20 Oct 2021 13:37:13 +0900 Subject: [PATCH 5/9] Install libmemcached-dev --- .github/workflows/django.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/django.yaml b/.github/workflows/django.yaml index d0cf6ce4..10621f84 100644 --- a/.github/workflows/django.yaml +++ b/.github/workflows/django.yaml @@ -43,6 +43,7 @@ jobs: env: DJANGO_VERSION: "2.2.24" run: | + sudo apt-get install libmemcached-dev wget https://github.com/django/django/archive/${DJANGO_VERSION}.tar.gz tar xf ${DJANGO_VERSION}.tar.gz cp ci/test_mysql.py django-${DJANGO_VERSION}/tests/ From 9e2a883d7c4614749ff1fe2b5faa358438ef31ea Mon Sep 17 00:00:00 2001 From: Inada Naoki Date: Wed, 20 Oct 2021 13:37:26 +0900 Subject: [PATCH 6/9] Do not run Django test on pull_request --- .github/workflows/django.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/django.yaml b/.github/workflows/django.yaml index 10621f84..cbcdc1aa 100644 --- a/.github/workflows/django.yaml +++ b/.github/workflows/django.yaml @@ -2,7 +2,6 @@ name: Django compat test on: push: - pull_request: jobs: build: From a83a878c70959a5dbedb7b15845160b93c0a6e7c Mon Sep 17 00:00:00 2001 From: Inada Naoki Date: Wed, 20 Oct 2021 13:49:02 +0900 Subject: [PATCH 7/9] Use Python 3.9 --- .github/workflows/django.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/django.yaml b/.github/workflows/django.yaml index cbcdc1aa..b83bc366 100644 --- a/.github/workflows/django.yaml +++ b/.github/workflows/django.yaml @@ -20,10 +20,10 @@ jobs: restore-keys: | ${{ runner.os }}-pip- - - name: Set up Python 3.10 + - name: Set up Python uses: actions/setup-python@v2 with: - python-version: "3.10" + python-version: "3.9" - uses: actions/checkout@v2 with: From d2ab4fceb5ea8d65e7ef6a388cc6273de216be28 Mon Sep 17 00:00:00 2001 From: Inada Naoki Date: Wed, 20 Oct 2021 14:04:29 +0900 Subject: [PATCH 8/9] fixup --- .github/workflows/django.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/django.yaml b/.github/workflows/django.yaml index b83bc366..f8bded8d 100644 --- a/.github/workflows/django.yaml +++ b/.github/workflows/django.yaml @@ -49,4 +49,4 @@ jobs: cd django-${DJANGO_VERSION}/tests/ pip install .. pip install -r requirements/py3.txt - ./runtests.py --settings=test_mysql + PYTHONPATH=.. python3 ./runtests.py --settings=test_mysql From 0059f4839ab85db16d9b0f552f9add7c6a9fdd9b Mon Sep 17 00:00:00 2001 From: Inada Naoki Date: Wed, 20 Oct 2021 14:33:25 +0900 Subject: [PATCH 9/9] Use Python 3.8 for now --- .github/workflows/django.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/django.yaml b/.github/workflows/django.yaml index f8bded8d..4e18374a 100644 --- a/.github/workflows/django.yaml +++ b/.github/workflows/django.yaml @@ -23,7 +23,8 @@ jobs: - name: Set up Python uses: actions/setup-python@v2 with: - python-version: "3.9" + # https://www.mail-archive.com/django-updates@googlegroups.com/msg209056.html + python-version: "3.8" - uses: actions/checkout@v2 with: