name: Test db migrations

on:
  pull_request:
    branches:
      - main
    paths:
      - 'src/migrations/**'
      - 'frontend/cypress/**'
      - '.github/workflows/validate-migrations.yaml'
      - 'test-migrations/**'
      - 'frontend/cypress'
  workflow_dispatch:
jobs:
  test-migrations:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Use Node.js 20.x
        uses: actions/setup-node@v4
        with:
          node-version: 20.x
          cache: 'yarn'
      - name: Start database
        working-directory: test-migrations
        run: docker compose up db -d --wait -t 90
      - name: Start stable version of Unleash
        working-directory: test-migrations
        run: docker compose up unleash -d --wait -t 90
      # add some data with terraform
      - name: Apply migrations
        env:
          DATABASE_URL: postgres://postgres:unleash@localhost:5432/unleash
          DATABASE_SSL: false
          YARN_ENABLE_SCRIPTS: false
        run: |
          yarn install --immutable
          yarn db-migrate up
      # run ui tests against previous version of Unleash
      - name: Run Cypress
        uses: cypress-io/github-action@v6
        with:
          working-directory: frontend
          env: AUTH_USER=admin,AUTH_PASSWORD=unleash4all
          config: baseUrl=http://localhost:4242
          spec: cypress/oss/**/*.spec.ts
          install-command: yarn --immutable