# name: E2E Tests
# on:
#   push:
#   #   paths:
#   #     - 'openvidu-components-angular/**'
#   #     - 'openvidu-browser/**'
#   # pull_request:
#   #   branches:
#   #     - master

#   repository_dispatch:
#     types: [openvidu-components-angular]
#   workflow_dispatch:

# env:
#   CHROME_VERSION: latest

# jobs:
#   # prepare_openvidu_components_angular:
#   #   if: false
#   #   name: Setup
#   #   runs-on: ubuntu-latest
#   #   steps:
#   #     - env:
#   #         COMMIT_MESSAGE: ${{ github.event.client_payload.commit-message }}
#   #         COMMIT_REF: ${{ github.event.client_payload.commit-ref }}
#   #       run: echo Commit openvidu-components-angular
#   #     - uses: actions/setup-node@v4
#   #       with:
#   #         node-version: '20'

#   #     - name: Build openvidu-components-angular
#   #       run: |
#   #         git clone --depth 1 https://github.com/OpenVidu/openvidu openvidu && \
#   #         cd openvidu/openvidu-components-angular && \
#   #         npm install && \
#   #         npm run lib:build && \
#   #         npm run lib:pack && \
#   #         mv dist/openvidu-components-angular/openvidu-components-angular-*.tgz ../../
#   #         cd ../../ && \
#   #         rm -rf openvidu
#   #     - uses: actions/upload-artifact@v4
#   #       with:
#   #         name: artifacts
#   #         path: ${{ github.workspace }}/**.tgz
#   #         if-no-files-found: error
#   routes_guards_tests:
#     name: Guards and Routes
#     runs-on: ubuntu-latest
#     steps:
#       - name: Checkout OpenVidu Local Deployment
#         uses: actions/checkout@v4
#         with:
#           repository: OpenVidu/openvidu-local-deployment
#           ref: development
#           path: openvidu-local-deployment

#       - name: Configure Local Deployment
#         shell: bash
#         run: |
#           cd openvidu-local-deployment/community
#           ./configure_lan_private_ip_linux.sh
#           docker compose up -d

#       - name: Wait for OpenVidu Local Deployment to Start
#         shell: bash
#         run: |
#           MAX_WAIT_SECONDS=60
#           SECONDS=0
#           until curl -s -f -o /dev/null http://localhost:7880; do
#             if [ $SECONDS -gt $MAX_WAIT_SECONDS ]; then
#               echo "OpenVidu Local Deployment did not start in $MAX_WAIT_SECONDS seconds"
#               exit 1
#             fi
#             echo "Waiting for openvidu-local-deployment to be ready ..."
#             sleep 5
#             SECONDS=$((SECONDS+5))
#           done
#           echo "OpenVidu Local Deployment started in $SECONDS seconds"

#       - uses: actions/checkout@v4
#         with:
#           ref: next
#           path: openvidu-meet

#       - uses: actions/setup-node@v4
#         with:
#           node-version: '20'
#       - name: Run Chrome
#         run: docker run --network=host -d -p 4444:4444 selenium/standalone-chrome:${{ env.CHROME_VERSION }}

#       - name: Prepare openvidu-meet
#         run: |
#           cd openvidu-meet
#           ./prepare.sh
#           cd frontend
#           npm run sync:backend
#           cd ../backend
#           npm run build:prod
#           npm run start:prod &

#       - name: Run tests
#         env:
#           LAUNCH_MODE: CI
#           APP_URL: http://localhost:6080
#         run: npm run e2e:run-routes --prefix openvidu-meet/frontend

#   # auth_e2e_test:
#   #   if: false
#   #   needs: prepare_openvidu_components_angular
#   #   name: Auth tests
#   #   runs-on: ubuntu-latest
#   #   steps:
#   #     - uses: actions/checkout@v4
#   #     - uses: actions/setup-node@v4
#   #       with:
#   #         node-version: '20'
#   #     - uses: actions/download-artifact@v4
#   #       with:
#   #         name: artifacts
#   #     # - name: Run Browserless Chrome
#   #     #   run: docker run -d -p 3000:3000 --network host browserless/chrome:1.53-chrome-stable
#   #     - name: Run Chrome
#   #       run:  docker run --network=host -d -p 4444:4444 selenium/standalone-chrome:127.0
#   #     - name: Run openvidu-local-deployment
#   #       run: |
#   #         git clone --depth 1 https://github.com/OpenVidu/openvidu-local-deployment
#   #         cd openvidu-local-deployment/community
#   #         ./configure_lan_private_ip_linux.sh
#   #         docker compose up -d

#   #     - name: Install dependencies and build openvidu-meet
#   #       run: |
#   #         npm install openvidu-components-angular-*.tgz --prefix frontend && \
#   #         npm install --prefix backend && \
#   #         npm run build:prod --prefix backend && \
#   #         npm run build:prod --prefix frontend && \
#   #         mv frontend/dist/openvidu-meet/ backend/dist/public/

#   #     - name: Wait for openvidu-local-deployment
#   #       run: |
#   #         until curl -s -f -o /dev/null http://localhost:7880; do
#   #           echo "Waiting for openvidu-local-deployment to be ready..."
#   #           sleep 5
#   #         done
#   #     - name: Serve openvidu-meet
#   #       env:
#   #         MEET_PRIVATE_ACCESS: true
#   #       run: npm run start --prefix backend &
#   #     - name: Run tests
#   #       env:
#   #         LAUNCH_MODE: CI
#   #       run: npm run e2e:run-auth --prefix frontend

#   # home_e2e_test:
#   #   if: false
#   #   needs: prepare_openvidu_components_angular
#   #   name: Home tests
#   #   runs-on: ubuntu-latest
#   #   steps:
#   #     - uses: actions/checkout@v4
#   #     - uses: actions/setup-node@v4
#   #       with:
#   #         node-version: '20'
#   #     - uses: actions/download-artifact@v4
#   #       with:
#   #         name: artifacts
#   #     # - name: Run Browserless Chrome
#   #     #   run: docker run -d -p 3000:3000 --network host browserless/chrome:1.53-chrome-stable
#   #     - name: Run Chrome
#   #       run:  docker run --network=host -d -p 4444:4444 selenium/standalone-chrome:127.0
#   #     - name: Run openvidu-local-deployment
#   #       run: |
#   #         git clone --depth 1 https://github.com/OpenVidu/openvidu-local-deployment
#   #         cd openvidu-local-deployment/community
#   #         ./configure_lan_private_ip_linux.sh
#   #         docker compose up -d

#   #     - name: Install dependencies and build openvidu-meet
#   #       run: |
#   #         npm install openvidu-components-angular-*.tgz --prefix frontend && \
#   #         npm install --prefix backend && \
#   #         npm run build:prod --prefix backend && \
#   #         npm run build:prod --prefix frontend && \
#   #         mv frontend/dist/openvidu-meet/ backend/dist/public/

#   #     - name: Wait for openvidu-local-deployment
#   #       run: |
#   #         until curl -s -f -o /dev/null http://localhost:7880; do
#   #           echo "Waiting for openvidu-local-deployment to be ready..."
#   #           sleep 5
#   #         done
#   #     - name: Serve openvidu-meet
#   #       run: npm run start --prefix backend &
#   #     - name: Run tests
#   #       env:
#   #         LAUNCH_MODE: CI
#   #         MEET_PRIVATE_ACCESS: false
#   #       run: npm run e2e:run-home --prefix frontend

#   # room_e2e_test:
#   #   if: false
#   #   needs: prepare_openvidu_components_angular
#   #   name: Room tests
#   #   runs-on: ubuntu-latest
#   #   steps:
#   #     - uses: actions/checkout@v4
#   #     - uses: actions/setup-node@v4
#   #       with:
#   #         node-version: '20'
#   #     - uses: actions/download-artifact@v4
#   #       with:
#   #         name: artifacts
#   #     # - name: Run Browserless Chrome
#   #     #   run: docker run -d -p 3000:3000 --network host browserless/chrome:1.53-chrome-stable
#   #     - name: Run Chrome
#   #       run:  docker run --network=host -d -p 4444:4444 selenium/standalone-chrome:127.0
#   #     - name: Run openvidu-local-deployment
#   #       run: |
#   #         git clone --depth 1 https://github.com/OpenVidu/openvidu-local-deployment
#   #         cd openvidu-local-deployment/community
#   #         ./configure_lan_private_ip_linux.sh
#   #         docker compose up -d

#   #     - name: Install dependencies and build openvidu-meet
#   #       run: |
#   #         npm install openvidu-components-angular-*.tgz --prefix frontend && \
#   #         npm install --prefix backend && \
#   #         npm run build:prod --prefix backend && \
#   #         npm run build:prod --prefix frontend && \
#   #         mv frontend/dist/openvidu-meet/ backend/dist/public/

#   #     - name: Wait for openvidu-local-deployment
#   #       run: |
#   #         until curl -s -f -o /dev/null http://localhost:7880; do
#   #           echo "Waiting for openvidu-local-deployment to be ready..."
#   #           sleep 5
#   #         done
#   #     - name: Serve openvidu-meet
#   #       run: npm run start --prefix backend &
#   #     - name: Run tests
#   #       env:
#   #         LAUNCH_MODE: CI
#   #         MEET_PRIVATE_ACCESS: false
#   #       run: npm run e2e:run-room --prefix frontend

#   recording_e2e_test:
#       name: Recordings tests
#       runs-on: ubuntu-latest
#       steps:
#         - name: Install ffmpeg
#           run: |
#             sudo apt-get update
#             sudo apt-get install -y ffmpeg
#         - name: Checkout OpenVidu Local Deployment
#           uses: actions/checkout@v4
#           with:
#             repository: OpenVidu/openvidu-local-deployment
#             ref: development
#             path: openvidu-local-deployment

#         - name: Configure Local Deployment
#           shell: bash
#           run: |
#             cd openvidu-local-deployment/community
#             ./configure_lan_private_ip_linux.sh
#             docker compose up -d

#         - name: Wait for OpenVidu Local Deployment to Start
#           shell: bash
#           run: |
#             MAX_WAIT_SECONDS=60
#             SECONDS=0
#             until curl -s -f -o /dev/null http://localhost:7880; do
#               if [ $SECONDS -gt $MAX_WAIT_SECONDS ]; then
#                 echo "OpenVidu Local Deployment did not start in $MAX_WAIT_SECONDS seconds"
#                 exit 1
#               fi
#               echo "Waiting for openvidu-local-deployment to be ready ..."
#               sleep 5
#               SECONDS=$((SECONDS+5))
#             done
#             echo "OpenVidu Local Deployment started in $SECONDS seconds"

#         - uses: actions/checkout@v4
#           with:
#             ref: next
#             path: openvidu-meet

#         - uses: actions/setup-node@v4
#           with:
#             node-version: '22.13.1'
#         - name: Run Chrome
#           run: |
#             mkdir -p /tmp/downloads
#             docker run --network=host \
#               -v /tmp/downloads:/tmp/downloads \
#               -d selenium/standalone-chrome:${{ env.CHROME_VERSION }}
#             # grant permissions to the /tmp/downloads folder
#             docker exec -u root \
#               $(docker ps -q --filter ancestor=selenium/standalone-chrome:${{ env.CHROME_VERSION }}) \
#               chmod 777 /tmp/downloads

#         - name: Prepare openvidu-meet
#           run: |
#             cd openvidu-meet
#             ./prepare.sh
#             cd frontend
#             npm run sync:backend
#             cd ../backend
#             npm run build:prod
#             npm run start:prod &

#         - name: Run tests
#           env:
#             LAUNCH_MODE: CI
#             APP_URL: http://localhost:6080
#           run: npm run e2e:run-recordings --prefix openvidu-meet/frontend
