name: OpenVidu CE Tests on: push: branches: - master paths-ignore: - ".github/workflows/openvidu-components-angular-E2E.yml" - "openvidu-components-angular/**" - "openvidu-server/docker/**" - "openvidu-server/deployments/**" pull_request: branches: - master workflow_dispatch: inputs: TEST_IMAGE: description: "Docker image where to run the tests" required: true default: "openvidu/openvidu-test-e2e:22.04" KURENTO_JAVA_COMMIT: description: 'Commit to use in kurento-java dependencies. If "default" the release version declared in property "version.kurento" of openvidu-parent/pom.xml will be used' required: true default: "default" KURENTO_MEDIA_SERVER_IMAGE: description: "Docker image of kurento-media-server" required: true default: "kurento/kurento-media-server:7.0.1" DOCKER_RECORDING_VERSION: description: "Force version of openvidu/openvidu-recording container" required: true default: "default" CHROME_VERSION: description: "Version of Chrome to use. Must be a valid image tag from https://hub.docker.com/r/selenium/standalone-chrome/tags" required: true default: "latest" FIREFOX_VERSION: description: "Version of Firefox to use. Must be a valid image tag from https://hub.docker.com/r/selenium/standalone-firefox/tags" required: true default: "latest" EDGE_VERSION: description: "Version of Edge to use. Must be a valid image tag from https://hub.docker.com/r/selenium/standalone-edge/tags" required: true default: "latest" jobs: main: runs-on: ubuntu-latest container: image: ${{ inputs.TEST_IMAGE || 'openvidu/openvidu-test-e2e:22.04' }} volumes: - /var/run/docker.sock:/var/run/docker.sock - /opt/openvidu:/opt/openvidu env: TEST_IMAGE: ${{ inputs.TEST_IMAGE || 'openvidu/openvidu-test-e2e:22.04' }} KURENTO_SNAPSHOTS_URL: ${{ secrets.KURENTO_SNAPSHOTS_URL }} KURENTO_MEDIA_SERVER_IMAGE: ${{ inputs.KURENTO_MEDIA_SERVER_IMAGE || 'kurento/kurento-media-server:7.0.1' }} KURENTO_JAVA_COMMIT: ${{ inputs.KURENTO_JAVA_COMMIT || 'default' }} DOCKER_RECORDING_VERSION: ${{ inputs.DOCKER_RECORDING_VERSION || 'default' }} CHROME_VERSION: ${{ inputs.CHROME_VERSION || 'latest' }} FIREFOX_VERSION: ${{ inputs.FIREFOX_VERSION || 'latest' }} EDGE_VERSION: ${{ inputs.EDGE_VERSION || 'latest' }} steps: - uses: actions/checkout@v3 - name: Setup scripts run: | curl -sOJ --output-dir /opt https://raw.githubusercontent.com/OpenVidu/openvidu/master/ci-scripts/commons/build.sh curl -sOJ --output-dir /opt https://raw.githubusercontent.com/OpenVidu/openvidu/master/ci-scripts/commons/test-utils.sh cp ci-scripts/openvidu-e2e-tests.sh /opt/openvidu-e2e-tests.sh find /opt/*.sh -type f -print0 | xargs -0 chmod u+x - name: Clean environment run: /opt/build.sh --clean-environment - name: Prepare test environment run: /opt/test-utils.sh --prepare-test-environment "${TEST_IMAGE}" - name: Check and prepare kurento snapshots run: /opt/build.sh --check-and-prepare-kurento-snapshot - name: Use specific kurento-java commit if: ${{ env.KURENTO_JAVA_COMMIT != 'default'}} run: /opt/test-utils.sh --use-specific-kurento-java-commit - name: Build openvidu-browser run: /opt/build.sh --build-openvidu-browser - name: Build openvidu-node-client run: /opt/build.sh --build-openvidu-node-client - name: Build openvidu-java-client run: /opt/build.sh --build-openvidu-java-client - name: Build openvidu-parent run: /opt/build.sh --build-openvidu-parent - name: Build openvidu-testapp run: /opt/build.sh --build-openvidu-testapp - name: Build openvidu-server dashboard run: /opt/build.sh --build-openvidu-server-dashboard true - name: Build openvidu-server run: /opt/build.sh --build-openvidu-server - name: openvidu-server unit tests run: /opt/openvidu-e2e-tests.sh --openvidu-server-unit-tests - name: openvidu-server integration tests run: /opt/openvidu-e2e-tests.sh --openvidu-server-integration-tests - name: Environment launch Kurento run: /opt/openvidu-e2e-tests.sh --environment-launch-kurento - name: Serve openvidu-testapp run: /opt/test-utils.sh --serve-openvidu-testapp - name: OpenVidu E2E Tests Kurento run: /opt/openvidu-e2e-tests.sh --openvidu-e2e-tests-kurento - name: Test reports uses: mikepenz/action-junit-report@v3 if: always() # always run even if the previous step fails with: report_paths: "**/target/surefire-reports/TEST-*.xml" - name: Upload logs uses: actions/upload-artifact@v3 if: always() # always run even if the previous step fails with: name: Logs path: | /opt/openvidu/*.log