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:
|
||||
|
||||
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:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
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:
|
||||
- uses: actions/checkout@v2
|
||||
|
@ -25,9 +55,22 @@ jobs:
|
|||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install tox
|
||||
- name: Run Tox
|
||||
# Run tox using the version of Python in `PATH`
|
||||
- name: Run Tox with sqlite
|
||||
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
|
||||
run: tox -e lint_docs
|
||||
if: matrix.python-version == '3.8'
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
import os
|
||||
|
||||
from flask_testing import TestCase
|
||||
from werkzeug.security import generate_password_hash
|
||||
|
||||
|
@ -58,7 +60,9 @@ class BaseTestCase(TestCase):
|
|||
|
||||
|
||||
class IhatemoneyTestCase(BaseTestCase):
|
||||
SQLALCHEMY_DATABASE_URI = "sqlite://"
|
||||
SQLALCHEMY_DATABASE_URI = os.environ.get(
|
||||
"TESTING_SQLALCHEMY_DATABASE_URI", "sqlite://"
|
||||
)
|
||||
TESTING = True
|
||||
WTF_CSRF_ENABLED = False # Simplifies the tests.
|
||||
|
||||
|
|
|
@ -51,6 +51,8 @@ dev =
|
|||
pytest>=5.4.1
|
||||
tox>=3.14.6
|
||||
zest.releaser>=6.20.1
|
||||
psycopg2-binary>=2.8.5
|
||||
PyMySQL>=0.9,<0.10
|
||||
|
||||
doc =
|
||||
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
|
||||
|
||||
[testenv]
|
||||
passenv = TESTING_SQLALCHEMY_DATABASE_URI
|
||||
|
||||
commands =
|
||||
python --version
|
||||
|
|
Loading…
Reference in a new issue