name: E2E (docker)

on:
  push:
  pull_request:
    branches: [master, dev]

concurrency:
  group:
    '${{ github.workflow }} @ ${{ github.event.pull_request.head.label ||
    github.head_ref || github.ref }}'
  cancel-in-progress: true

jobs:
  e2e:
    if:
      github.ref == 'refs/heads/master' || github.ref == 'refs/heads/dev' ||
      github.event_name == 'pull_request'
    runs-on: ubuntu-latest
    strategy:
      matrix:
        resolution: ['high']

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

      - name: Run e2e tests (${{ matrix.resolution }} res)
        run: |
          docker compose -f docker-compose.ci.keplr.yml --env-file ${{ matrix.resolution }}-res.env --profile synpress up --build --exit-code-from synpress
        env:
          COMPOSE_DOCKER_CLI_BUILD: 1
          DOCKER_BUILDKIT: 1
          DOCKER_DEFAULT_PLATFORM: linux/amd64
          NGROK_AUTH: ${{ secrets.NGROK_AUTH }}
          NGROK_BASIC_AUTH: ${{ secrets.NGROK_BASIC_AUTH }}
          CYPRESS_PRIVATE_KEY_WITH_FUNDS:
            ${{ secrets.CYPRESS_PRIVATE_KEY_WITH_FUNDS }}
          ANVIL_FORK_URL: ${{ secrets.ANVIL_FORK_URL }}
          GH_PAT: ${{ secrets.GH_PAT }}
          GH_USERNAME: ${{ secrets.GH_USERNAME }}
          # cypress dashboard
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }}
          CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
          COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }}
          COMMIT_INFO_SHA: ${{ github.event.pull_request.head.sha }}

      - name: Archive e2e artifacts (${{ matrix.resolution }} res)
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: e2e-artifacts-${{ matrix.resolution }}-res
          path: |
            docker/videos
            docker/videos-ci
            docker/screenshots
        continue-on-error: true