From ef68f2a2f137c079c5c24535a56d833730d6953d Mon Sep 17 00:00:00 2001 From: Carlos Santos <4a.santos@gmail.com> Date: Fri, 25 Apr 2025 12:33:35 +0200 Subject: [PATCH] ci: Refactor integration test workflow to streamline setup and improve wait logic --- .github/workflows/integration-test.yaml | 131 ++++++++++++++---------- 1 file changed, 77 insertions(+), 54 deletions(-) diff --git a/.github/workflows/integration-test.yaml b/.github/workflows/integration-test.yaml index b4dc298..8fb47ae 100644 --- a/.github/workflows/integration-test.yaml +++ b/.github/workflows/integration-test.yaml @@ -6,6 +6,16 @@ jobs: name: Rooms API Tests runs-on: ov-actions-runner steps: + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + - name: Setup yarn # Needed for the redlock package + run: npm install -g yarn + - name: Install wait-on + run: npm install -g wait-on + - name: Install LK CLI + run: curl -sSL https://get.livekit.io/cli | bash - name: Checkout OpenVidu Local Deployment uses: actions/checkout@v4 with: @@ -19,35 +29,9 @@ jobs: 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" - + run: wait-on --timeout 60000 http://localhost:7880 - uses: actions/checkout@v4 - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' - - name: Setup yarn # Needed for the redlock package - run: npm install -g yarn - - name: Install wait-on - run: npm install -g wait-on - - name: Install LK CLI - run: | - curl -sSL https://get.livekit.io/cli | bash - name: Setup OpenVidu Meet shell: bash run: | @@ -74,7 +58,18 @@ jobs: test-recordings: name: Recordings API Tests runs-on: ov-actions-runner + if: false steps: + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + - name: Setup yarn # Needed for the redlock package + run: npm install -g yarn + - name: Install wait-on + run: npm install -g wait-on + - name: Install LK CLI + run: curl -sSL https://get.livekit.io/cli | bash - name: Checkout OpenVidu Local Deployment uses: actions/checkout@v4 with: @@ -90,33 +85,8 @@ jobs: 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" - + run: wait-on --timeout 60000 http://localhost:7880 - uses: actions/checkout@v4 - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' - - name: Setup yarn # Needed for the redlock package - run: npm install -g yarn - - name: Install wait-on - run: npm install -g wait-on - - name: Install LK CLI - run: | - curl -sSL https://get.livekit.io/cli | bash - name: Setup OpenVidu Meet run: | ./prepare.sh @@ -124,7 +94,6 @@ jobs: npm install npm run start:prod & - name: Wait for OpenVidu Meet to Start - shell: bash run: wait-on --timeout 30000 http://localhost:6080/meet/health - name: Run tests run: | @@ -139,3 +108,57 @@ jobs: report_paths: '**/reports/junit.xml' fail_on_failure: true require_tests: true + + test-security: + name: Security API Tests + runs-on: ov-actions-runner + if: false + steps: + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + - name: Setup yarn # Needed for the redlock package + run: npm install -g yarn + - name: Install wait-on + run: npm install -g wait-on + - name: Install LK CLI + run: curl -sSL https://get.livekit.io/cli | bash + - 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 + run: wait-on --timeout 60000 http://localhost:7880 + - uses: actions/checkout@v4 + - name: Setup OpenVidu Meet + run: | + ./prepare.sh + cd backend + npm install + npm run start:prod & + - name: Wait for OpenVidu Meet to Start + run: wait-on --timeout 30000 http://localhost:6080/meet/health + - name: Run tests + run: | + cd backend + npm run test:integration-security + env: + JEST_JUNIT_OUTPUT_DIR: './reports/' + - name: Publish Test Report + uses: mikepenz/action-junit-report@v4 + if: always() + with: + report_paths: '**/reports/junit.xml' + fail_on_failure: true + require_tests: true