# 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