fix(tests): fixed testing DB deployment v5

This commit is contained in:
ribardej
2025-10-29 14:43:26 +01:00
parent 55f8e38376
commit 52f6bd6a53
3 changed files with 18 additions and 77 deletions

View File

@@ -12,25 +12,7 @@ jobs:
test:
name: Run Python Tests
if: github.event.action != 'closed'
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run tests with pytest
run: pytest
working-directory: ./7project/backend
uses: ./.github/workflows/run-tests.yml
build:
if: github.event.action != 'closed'

View File

@@ -23,26 +23,7 @@ concurrency:
jobs:
test:
name: Run Python Tests
if: github.event.action != 'closed'
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run tests with pytest
run: pytest
working-directory: ./7project/backend
uses: ./.github/workflows/run-tests.yml
build:
name: Build and push image (reusable)

View File

@@ -2,48 +2,31 @@ name: Run Python Tests
permissions:
contents: read
# -----------------
# --- Triggers ----
# -----------------
# This section defines when the workflow will run.
on:
# Run on every push to the 'main' branch
push:
branches: [ "main" ]
# Also run on every pull request that targets the 'main' branch
pull_request:
branches: [ "main" ]
workflow_call:
# -----------------
# ------ Jobs -----
# -----------------
# A workflow is made up of one or more jobs that can run in parallel or sequentially.
jobs:
build-and-test:
runs-on: ubuntu-latest
# 1) Start a MariaDB service container for tests
services:
# The label 'mariadb' becomes the hostname
mariadb:
image: mariadb:11.4
env:
MARIADB_ROOT_PASSWORD: rootpw
MARIADB_DATABASE: group_project # Using the DB name your app expects
# This DB name now matches what your app expects
MARIADB_DATABASE: group_project
MARIADB_USER: appuser
MARIADB_PASSWORD: apppass
ports:
- 3306:3306
# Healthcheck ensures the job only starts when DB is ready
options: >-
--health-cmd="mysqladmin ping -h 127.0.0.1 -u root -prootpw --silent"
--health-interval=5s
--health-timeout=2s
--health-retries=20
# This is the job-level 'env' block
# It will be used by all steps (alembic, pytest, etc.)
# 2) Expose DB connection settings to steps
env:
MARIADB_HOST: 127.0.0.1
MARIADB_PORT: "3306"
# Use the service label 'mariadb' as the host
MARIADB_HOST: mariadb
MARIADB_PORT: "3306" # This is the internal port, which is correct
# Match the database name from the service
MARIADB_DB: group_project
MARIADB_USER: appuser
MARIADB_PASSWORD: apppass
@@ -57,26 +40,21 @@ jobs:
with:
python-version: '3.11'
- name: Add test dependencies to requirements
run: |
echo "pytest==8.4.2" >> ./7project/backend/requirements.txt
echo "pytest-asyncio==1.2.0" >> ./7project/backend/requirements.txt
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -r ./7project/backend/requirements.txt
# This step will now wait for the healthcheck to pass
# and will use the job-level 'env' block
- name: Run Alembic migrations
run: |
alembic upgrade head
working-directory: ./7project/backend
# This step-level 'env' block overrides any local .env
# file that your pytest setup might be loading
- name: Run tests with pytest
env:
MARIADB_HOST: 127.0.0.1
MARIADB_PORT: "3306"
MARIADB_DB: group_project
MARIADB_USER: appuser
MARIADB_PASSWORD: apppass
run: pytest
working-directory: ./7project/backend