mirror of
https://github.com/spiral-project/ihatemoney.git
synced 2025-04-28 17:32:38 +02:00
Enable CI builds with postgresql and mariadb
This commit is contained in:
parent
33aad60352
commit
7ceb66f01b
4 changed files with 53 additions and 3 deletions
45
.github/workflows/test-docs.yml
vendored
45
.github/workflows/test-docs.yml
vendored
|
@ -10,10 +10,40 @@ jobs:
|
||||||
build:
|
build:
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
# Use postgresql and MariaDB versions of Debian buster
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: postgres:11
|
||||||
|
ports:
|
||||||
|
- 5432:5432
|
||||||
|
env:
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
POSTGRES_PASSWORD: ihatemoney
|
||||||
|
POSTGRES_DB: ihatemoney_ci
|
||||||
|
options:
|
||||||
|
--health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
||||||
|
mariadb:
|
||||||
|
image: mariadb:10.3
|
||||||
|
env:
|
||||||
|
MARIADB_ROOT_PASSWORD: ihatemoney
|
||||||
|
MARIADB_DATABASE: ihatemoney_ci
|
||||||
|
options: >-
|
||||||
|
--health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||||
|
ports:
|
||||||
|
- 3306:3306
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
python-version: [3.6, 3.7, 3.8, 3.9]
|
python-version: [3.6, 3.7, 3.8, 3.9]
|
||||||
|
database: [sqlite]
|
||||||
|
# Test other databases only with one version of Python (Debian buster has 3.7)
|
||||||
|
include:
|
||||||
|
- python-version: 3.7
|
||||||
|
database: postgresql
|
||||||
|
- python-version: 3.7
|
||||||
|
database: mariadb
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
@ -25,9 +55,22 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
python -m pip install tox
|
python -m pip install tox
|
||||||
- name: Run Tox
|
|
||||||
# Run tox using the version of Python in `PATH`
|
# Run tox using the version of Python in `PATH`
|
||||||
|
- name: Run Tox with sqlite
|
||||||
run: tox -e py
|
run: tox -e py
|
||||||
|
if: matrix.database == 'sqlite'
|
||||||
|
env:
|
||||||
|
TESTING_SQLALCHEMY_DATABASE_URI: 'sqlite:///budget.db'
|
||||||
|
- name: Run Tox with postgresql
|
||||||
|
run: tox -e py
|
||||||
|
if: matrix.database == 'postgresql'
|
||||||
|
env:
|
||||||
|
TESTING_SQLALCHEMY_DATABASE_URI: 'postgresql+psycopg2://postgres:ihatemoney@localhost:5432/ihatemoney_ci'
|
||||||
|
- name: Run Tox with mariadb
|
||||||
|
run: tox -e py
|
||||||
|
if: matrix.database == 'mariadb'
|
||||||
|
env:
|
||||||
|
TESTING_SQLALCHEMY_DATABASE_URI: 'mysql+pymysql://root:ihatemoney@localhost:3306/ihatemoney_ci'
|
||||||
- name: Run Lint & Docs
|
- name: Run Lint & Docs
|
||||||
run: tox -e lint_docs
|
run: tox -e lint_docs
|
||||||
if: matrix.python-version == '3.8'
|
if: matrix.python-version == '3.8'
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import os
|
||||||
|
|
||||||
from flask_testing import TestCase
|
from flask_testing import TestCase
|
||||||
from werkzeug.security import generate_password_hash
|
from werkzeug.security import generate_password_hash
|
||||||
|
|
||||||
|
@ -58,7 +60,9 @@ class BaseTestCase(TestCase):
|
||||||
|
|
||||||
|
|
||||||
class IhatemoneyTestCase(BaseTestCase):
|
class IhatemoneyTestCase(BaseTestCase):
|
||||||
SQLALCHEMY_DATABASE_URI = "sqlite://"
|
SQLALCHEMY_DATABASE_URI = os.environ.get(
|
||||||
|
"TESTING_SQLALCHEMY_DATABASE_URI", "sqlite://"
|
||||||
|
)
|
||||||
TESTING = True
|
TESTING = True
|
||||||
WTF_CSRF_ENABLED = False # Simplifies the tests.
|
WTF_CSRF_ENABLED = False # Simplifies the tests.
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,8 @@ dev =
|
||||||
pytest>=5.4.1
|
pytest>=5.4.1
|
||||||
tox>=3.14.6
|
tox>=3.14.6
|
||||||
zest.releaser>=6.20.1
|
zest.releaser>=6.20.1
|
||||||
|
psycopg2-binary>=2.8.5
|
||||||
|
PyMySQL>=0.9,<0.10
|
||||||
|
|
||||||
doc =
|
doc =
|
||||||
Sphinx==4.0.3
|
Sphinx==4.0.3
|
||||||
|
|
1
tox.ini
1
tox.ini
|
@ -3,6 +3,7 @@ envlist = py39,py38,py37,py36,lint_docs
|
||||||
skip_missing_interpreters = True
|
skip_missing_interpreters = True
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
|
passenv = TESTING_SQLALCHEMY_DATABASE_URI
|
||||||
|
|
||||||
commands =
|
commands =
|
||||||
python --version
|
python --version
|
||||||
|
|
Loading…
Reference in a new issue