name: Cypress tests with screenshots PREMIUM

on:
  push:
    branches:
      - master
      - develop
      - 'feature/**'
      - hotfix/**

jobs:
  e2e-tests:
    runs-on: ubuntu-latest

    steps:
      - name: Use Node.js 18.x
        uses: actions/setup-node@v1
        with:
          node-version: 18.x

      - uses: actions/checkout@v3
        with:
          fetch-depth: 1

      - _include: checkout-and-merge-pro

      - name: yarn install
        run: |
          cd ../dbgate-merged
          yarn install

      - name: Build packer dist for cypress
        run: |
          cd ../dbgate-merged
          yarn prepare:packer

      - name: yarn install cypress
        run: |
          cd ../dbgate-merged
          cd e2e-tests
          yarn install

      - name: Run Cypress tests
        run: |
          cd ../dbgate-merged
          cd e2e-tests
          yarn test:ci

      - name: ls -R
        run: |
          cd ../dbgate-merged
          ls -R

      - name: Copy screenshots
        run: |
          mkdir screenshots
          cp ../dbgate-merged/e2e-tests/screenshots/*.png screenshots/

      - name: Upload E2E screenshots
        uses: actions/upload-artifact@v4
        with:
          name: screenshots
          path: screenshots

    services:
      postgres-cypress:
        image: postgres
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
        env:
          POSTGRES_PASSWORD: Pwd2020Db
        ports: 
          - 16000:5432

      mysql-cypress:
        image: mysql:8.0.18
        ports: 
          - 16004:3306
        env:
          MYSQL_ROOT_PASSWORD: Pwd2020Db

      mysql-ssh-login:
        image: ghcr.io/dbgate/mysql-ssh-login:latest
        ports:
          - '16012:22'

      mysql-ssh-keyfile:
        image: ghcr.io/dbgate/mysql-ssh-keyfile:latest
        ports: 
          - '16008:22'

      dex:
        image: ghcr.io/dbgate/dex:latest
        ports:
          - 16009:5556

      mongo:
        image: mongo:4.0.12
        env:
          MONGO_INITDB_ROOT_USERNAME: root
          MONGO_INITDB_ROOT_PASSWORD: Pwd2020Db
        ports:
          - 16010:27017

      redis:
        image: redis
        ports:
          - 16011:6379
