From 48fadcdf4a8748730c6fe139d43432ebd923150a Mon Sep 17 00:00:00 2001 From: Baptiste Jonglez Date: Sun, 4 Jul 2021 19:07:23 +0200 Subject: [PATCH] CI: add postgresql and mysql to Github Actions test matrix --- .github/workflows/test-docs.yml | 47 +++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-docs.yml b/.github/workflows/test-docs.yml index b5c67db0..0efdffd9 100644 --- a/.github/workflows/test-docs.yml +++ b/.github/workflows/test-docs.yml @@ -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` + # 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'