# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
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
      - name: Checkout dbgate/dbgate-pro
        uses: actions/checkout@v2
        with:
          repository: dbgate/dbgate-pro
          token: '${{ secrets.GH_TOKEN }}'
          path: dbgate-pro
          ref: a770b7e7a4d0ced5f1ade7cba4ba516220765648
      - name: Merge dbgate/dbgate-pro
        run: |
          mkdir ../dbgate-pro
          mv dbgate-pro/* ../dbgate-pro/
          cd ..
          mkdir dbgate-merged
          cd dbgate-pro
          cd sync
          yarn
          node sync.js --nowatch
          cd ..
      - 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'
