From edb4dfd14779c13e929341bd213ec841d243736d Mon Sep 17 00:00:00 2001 From: ribardej Date: Wed, 29 Oct 2025 13:50:04 +0100 Subject: [PATCH] fix(tests): fixed testing DB deployment --- .github/workflows/run-tests.yml | 40 ++++++++++++--------------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index eb7f488..9573551 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -19,69 +19,57 @@ on: # ----------------- # A workflow is made up of one or more jobs that can run in parallel or sequentially. jobs: - # A descriptive name for your job build-and-test: - # Specifies the virtual machine to run the job on. 'ubuntu-latest' is a common and cost-effective choice. 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_test + # This DB name now matches what your app expects + MARIADB_DATABASE: group_project MARIADB_USER: appuser MARIADB_PASSWORD: apppass - ports: - - 3306:3306 - options: >- - --health-cmd="mysqladmin ping -h 127.0.0.1 -u root -prootpw --silent" - --health-interval=5s - --health-timeout=2s - --health-retries=20 + # 'ports' and 'options' are removed. + # GitHub Actions will use the image's default healthcheck. - # 2) Expose DB connection settings to steps so your app picks them up + # 2) Expose DB connection settings to steps env: - MARIADB_HOST: 127.0.0.1 - MARIADB_PORT: "3306" - MARIADB_DB: group_project_test + # 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 - # Optional: enable SQL echo logs in CI for debugging - # SQL_ECHO: "1" # ----------------- # ----- Steps ----- # ----------------- - # A sequence of tasks that will be executed as part of the job. steps: - # Step 1: Check out your repository's code - # This action allows the workflow to access your code. + # ... (your steps remain the same) ... + - name: Check out repository code uses: actions/checkout@v4 - # Step 2: Set up the Python environment - # This action installs a specific version of Python on the runner. - name: Set up Python 3.11 uses: actions/setup-python@v5 with: - python-version: '3.11' # Use the Python version that matches your project + python-version: '3.11' - # Step 3: Install project dependencies (from repo root) - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - # Step 4: Apply DB migrations before running tests - name: Run Alembic migrations run: | alembic upgrade head working-directory: ./7project/backend - # Step 5: Run your tests! - # Executes the pytest command to run your test suite. - name: Run tests with pytest run: pytest working-directory: ./7project/backend \ No newline at end of file