name: DB Migration Test

on:
  pull_request:
    branches:
      - main
    paths:
      - api/migrations/**

concurrency:
  group: db-migration-test-${{ github.ref }}
  cancel-in-progress: true

jobs:
  db-migration-test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version:
          - "3.10"

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Install Poetry
        uses: abatilo/actions-poetry@v3

      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}
          cache: 'poetry'
          cache-dependency-path: |
            api/pyproject.toml
            api/poetry.lock

      - name: Install dependencies
        run: poetry install -C api

      - name: Set up Middlewares
        uses: hoverkraft-tech/compose-action@v2.0.0
        with:
          compose-file: |
            docker/docker-compose.middleware.yaml
          services: |
            db
            redis

      - name: Prepare configs
        run: |
          cd api
          cp .env.example .env

      - name: Run DB Migration
        run: |
          cd api
          poetry run python -m flask upgrade-db
