ci: add prejob to build OpenVidu Angular components once and remove Azure from test matrix (except recording tests)

This commit is contained in:
juancarmore 2025-09-25 11:11:12 +02:00
parent 9b54b7170c
commit 77f6255b24

View File

@ -20,10 +20,363 @@ on:
default: 'c5.2xlarge'
jobs:
build-components:
name: Build OpenVidu Components Angular
runs-on: ov-actions-runner
steps:
- name: Build Components
id: build
uses: OpenVidu/actions/build-openvidu-components-angular@main
outputs:
artifact_name: ${{ steps.build.outputs.artifact_name }}
test-rooms:
name: Rooms API Tests
needs: build-components
runs-on: ov-actions-runner
steps:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.13'
- name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main
with:
ref-openvidu-local-deployment: development
pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash
echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi
BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main
with:
build_components_angular: 'true'
components_artifact_name: ${{ needs.build-components.outputs.artifact_name }}
- name: Run tests
run: |
cd backend
npm run test:integration-rooms
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
- name: Clean up
if: always()
uses: OpenVidu/actions/cleanup@main
test-webhooks:
name: Webhook Tests
needs: build-components
runs-on: ov-actions-runner
steps:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.13'
- name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main
with:
ref-openvidu-local-deployment: development
pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash
echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi
BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main
with:
build_components_angular: 'true'
components_artifact_name: ${{ needs.build-components.outputs.artifact_name }}
- name: Run tests
run: |
cd backend
npm run test:integration-webhooks
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
- name: Clean up
if: always()
uses: OpenVidu/actions/cleanup@main
test-security:
name: Security API Tests
needs: build-components
runs-on: ov-actions-runner
steps:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.13'
- name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main
with:
ref-openvidu-local-deployment: development
pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash
echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi
BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main
with:
build_components_angular: 'true'
components_artifact_name: ${{ needs.build-components.outputs.artifact_name }}
env:
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-security'
- 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
- name: Clean up
if: always()
uses: OpenVidu/actions/cleanup@main
test-global-config:
name: Global Config API Tests
needs: build-components
runs-on: ov-actions-runner
steps:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.13'
- name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main
with:
ref-openvidu-local-deployment: development
pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash
echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi
BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main
with:
build_components_angular: 'true'
components_artifact_name: ${{ needs.build-components.outputs.artifact_name }}
- name: Run tests
run: |
cd backend
npm run test:integration-global-config
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
- name: Clean up
if: always()
uses: OpenVidu/actions/cleanup@main
test-participants:
name: Participants API Tests
needs: build-components
runs-on: ov-actions-runner
steps:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.13'
- name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main
with:
ref-openvidu-local-deployment: development
pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash
echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi
BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main
with:
build_components_angular: 'true'
components_artifact_name: ${{ needs.build-components.outputs.artifact_name }}
- name: Run tests
run: |
cd backend
npm run test:integration-participants
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
- name: Clean up
if: always()
uses: OpenVidu/actions/cleanup@main
test-meetings:
name: Meetings API Tests
needs: build-components
runs-on: ov-actions-runner
steps:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.13'
- name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main
with:
ref-openvidu-local-deployment: development
pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash
echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi
BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main
with:
build_components_angular: 'true'
components_artifact_name: ${{ needs.build-components.outputs.artifact_name }}
- name: Run tests
run: |
cd backend
npm run test:integration-meetings
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
- name: Clean up
if: always()
uses: OpenVidu/actions/cleanup@main
test-users:
name: Users API Tests
needs: build-components
runs-on: ov-actions-runner
steps:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.13'
- name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main
with:
ref-openvidu-local-deployment: development
pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash
echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi
BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main
with:
build_components_angular: 'true'
components_artifact_name: ${{ needs.build-components.outputs.artifact_name }}
- name: Run tests
run: |
cd backend
npm run test:integration-users
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
- name: Clean up
if: always()
uses: OpenVidu/actions/cleanup@main
remove-components-artifact:
name: Remove OpenVidu Components Angular Artifact
needs:
- build-components
- test-rooms
- test-webhooks
- test-security
- test-global-config
- test-participants
- test-meetings
- test-users
runs-on: ov-actions-runner
if: ${{ always() }}
steps:
- name: Remove Artifact
uses: geekyeggo/delete-artifact@v5
with:
name: ${{ needs.build-components.outputs.artifact_name }}
start-aws-runner:
name: Prepare AWS runner
runs-on: ov-actions-runner
if: ${{ inputs.use-aws != 'false' }}
if: ${{ inputs.use-aws == 'true' }}
outputs:
label: ${{ steps.start-ec2-runner.outputs.label }}
ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }}
@ -42,84 +395,18 @@ jobs:
security-group-id: ${{ vars.AWS_SECURITY_GROUP_ID }}
workflow-name: ${{ github.workflow }}
repository-name: ${{ github.repository }}
# test-rooms:
# name: Rooms API Tests
# runs-on: ov-actions-runner
# strategy:
# fail-fast: false
# matrix:
# storage-provider: [s3, abs]
# steps:
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: '22.13'
# - name: Install LK CLI
# run: curl -sSL https://get.livekit.io/cli | bash
# - name: Setup OpenVidu Local Deployment
# uses: OpenVidu/actions/start-openvidu-local-deployment@main
# with:
# ref-openvidu-local-deployment: development
# pre_startup_commands: |
# cat <<'BASH' > pre_startup_commands.sh
# #!/bin/bash
# if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
# echo "Using Azure storage provider"
# yq e -i '
# del(.storage.s3) |
# .storage.azure = {
# "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
# "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
# "container_name": "openvidu-appdata-rooms"
# }
# ' egress.yaml
# fi
# echo "Commenting out openvidu-meet container in docker-compose.yaml"
# if [ -f docker-compose.yaml ]; then
# yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
# fi
# BASH
# chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
# - name: Setup OpenVidu Meet
# uses: OpenVidu/actions/start-openvidu-meet@main
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-rooms'
# - name: Run tests
# run: |
# cd backend
# npm run test:integration-rooms
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-rooms'
# 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
# - name: Clean up
# if: always()
# uses: OpenVidu/actions/cleanup@main
test-recordings:
name: Recordings API Tests
needs: start-aws-runner
needs:
- start-aws-runner
- build-components
if: ${{ always() && (needs.start-aws-runner.result == 'success' || needs.start-aws-runner.result == 'skipped') }}
runs-on: ${{ needs.start-aws-runner.outputs.label || 'ov-actions-runner' }}
strategy:
fail-fast: false
matrix:
#storage-provider: [s3, abs, gcs]
storage-provider: [gcs]
storage-provider: [s3, abs, gcs]
timeout-minutes: 30
steps:
- name: Setup Node.js
@ -140,7 +427,7 @@ jobs:
cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash
if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
echo "Using Azure storage provider"
echo "Using Azure Blob Storage provider"
yq e -i '
del(.storage.s3) |
.storage.azure = {
@ -150,7 +437,7 @@ jobs:
}
' egress.yaml
elif [[ "${{ matrix['storage-provider'] }}" == "gcs" ]]; then
echo "Using GCS storage provider"
echo "Using Google Cloud Storage provider"
yq eval --inplace '.storage.gcp.credentials_json = (load("/credentials.json") | tostring) | .storage.gcp.credentials_json style="single"' egress.yaml
yq e -i '
@ -167,25 +454,32 @@ jobs:
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main
with:
build_components_angular: 'true'
components_artifact_name: ${{ needs.build-components.outputs.artifact_name }}
env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-recordings'
GOOGLE_APPLICATION_CREDENTIALS: /credentials.json
MEET_S3_BUCKET: 'openvidu-appdata'
# ABS variables
MEET_AZURE_ACCOUNT_NAME: ${{ matrix.storage-provider == 'abs' && vars.MEET_AZURE_ACCOUNT_NAME || '' }}
MEET_AZURE_ACCOUNT_KEY: ${{ matrix.storage-provider == 'abs' && secrets.MEET_AZURE_ACCOUNT_KEY || '' }}
MEET_AZURE_CONTAINER_NAME: ${{ matrix.storage-provider == 'abs' && 'openvidu-appdata-recordings' || '' }}
# GCS variables
GOOGLE_APPLICATION_CREDENTIALS: ${{ matrix.storage-provider == 'gcs' && '/credentials.json' || '' }}
MEET_S3_BUCKET: ${{ matrix.storage-provider == 'gcs' && 'openvidu-appdata' || '' }}
- name: Run tests
run: |
cd backend
npm run test:integration-recordings
env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-recordings'
GOOGLE_APPLICATION_CREDENTIALS: /credentials.json
MEET_S3_BUCKET: 'openvidu-appdata'
JEST_JUNIT_OUTPUT_DIR: './reports/'
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# ABS variables
MEET_AZURE_ACCOUNT_NAME: ${{ matrix.storage-provider == 'abs' && vars.MEET_AZURE_ACCOUNT_NAME || '' }}
MEET_AZURE_ACCOUNT_KEY: ${{ matrix.storage-provider == 'abs' && secrets.MEET_AZURE_ACCOUNT_KEY || '' }}
MEET_AZURE_CONTAINER_NAME: ${{ matrix.storage-provider == 'abs' && 'openvidu-appdata-recordings' || '' }}
# GCS variables
GOOGLE_APPLICATION_CREDENTIALS: ${{ matrix.storage-provider == 'gcs' && '/credentials.json' || '' }}
MEET_S3_BUCKET: ${{ matrix.storage-provider == 'gcs' && 'openvidu-appdata' || '' }}
- name: Publish Test Report
uses: mikepenz/action-junit-report@v4
if: always()
@ -204,402 +498,6 @@ jobs:
if: always()
uses: OpenVidu/actions/cleanup@main
# test-webhooks:
# name: Webhook Tests
# runs-on: ov-actions-runner
# strategy:
# fail-fast: false
# matrix:
# storage-provider: [s3, abs]
# steps:
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: '22.13'
# - name: Install LK CLI
# run: curl -sSL https://get.livekit.io/cli | bash
# - name: Setup OpenVidu Local Deployment
# uses: OpenVidu/actions/start-openvidu-local-deployment@main
# with:
# ref-openvidu-local-deployment: development
# pre_startup_commands: |
# cat <<'BASH' > pre_startup_commands.sh
# #!/bin/bash
# if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
# echo "Using Azure storage provider"
# yq e -i '
# del(.storage.s3) |
# .storage.azure = {
# "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
# "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
# "container_name": "openvidu-appdata-webhooks"
# }
# ' egress.yaml
# fi
# echo "Commenting out openvidu-meet container in docker-compose.yaml"
# if [ -f docker-compose.yaml ]; then
# yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
# fi
# BASH
# chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
# - name: Setup OpenVidu Meet
# uses: OpenVidu/actions/start-openvidu-meet@main
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-webhooks'
# - name: Run tests
# run: |
# cd backend
# npm run test:integration-webhooks
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-webhooks'
# 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
# - name: Clean up
# if: always()
# uses: OpenVidu/actions/cleanup@main
# test-security:
# name: Security API Tests
# runs-on: ov-actions-runner
# strategy:
# fail-fast: false
# matrix:
# storage-provider: [s3, abs]
# steps:
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: '22.13'
# - name: Install LK CLI
# run: curl -sSL https://get.livekit.io/cli | bash
# - name: Setup OpenVidu Local Deployment
# uses: OpenVidu/actions/start-openvidu-local-deployment@main
# with:
# ref-openvidu-local-deployment: development
# pre_startup_commands: |
# cat <<'BASH' > pre_startup_commands.sh
# #!/bin/bash
# if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
# echo "Using Azure storage provider"
# yq e -i '
# del(.storage.s3) |
# .storage.azure = {
# "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
# "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
# "container_name": "openvidu-appdata-security"
# }
# ' egress.yaml
# fi
# echo "Commenting out openvidu-meet container in docker-compose.yaml"
# if [ -f docker-compose.yaml ]; then
# yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
# fi
# BASH
# chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
# - name: Setup OpenVidu Meet
# uses: OpenVidu/actions/start-openvidu-meet@main
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-security'
# - name: Run tests
# run: |
# cd backend
# npm run test:integration-security
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-security'
# 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
# - name: Clean up
# if: always()
# uses: OpenVidu/actions/cleanup@main
# test-global-config:
# name: Global Config API Tests
# runs-on: ov-actions-runner
# strategy:
# fail-fast: false
# matrix:
# storage-provider: [s3, abs]
# steps:
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: '22.13'
# - name: Install LK CLI
# run: curl -sSL https://get.livekit.io/cli | bash
# - name: Setup OpenVidu Local Deployment
# uses: OpenVidu/actions/start-openvidu-local-deployment@main
# with:
# ref-openvidu-local-deployment: development
# pre_startup_commands: |
# cat <<'BASH' > pre_startup_commands.sh
# #!/bin/bash
# if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
# echo "Using Azure storage provider"
# yq e -i '
# del(.storage.s3) |
# .storage.azure = {
# "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
# "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
# "container_name": "openvidu-appdata-global-preferences"
# }
# ' egress.yaml
# fi
# echo "Commenting out openvidu-meet container in docker-compose.yaml"
# if [ -f docker-compose.yaml ]; then
# yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
# fi
# BASH
# chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
# - name: Setup OpenVidu Meet
# uses: OpenVidu/actions/start-openvidu-meet@main
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-global-preferences'
# - name: Run tests
# run: |
# cd backend
# npm run test:integration-global-config
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-global-preferences'
# 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
# - name: Clean up
# if: always()
# uses: OpenVidu/actions/cleanup@main
# test-participants:
# name: Participants API Tests
# runs-on: ov-actions-runner
# strategy:
# fail-fast: false
# matrix:
# storage-provider: [s3, abs]
# steps:
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: '22.13'
# - name: Install LK CLI
# run: curl -sSL https://get.livekit.io/cli | bash
# - name: Setup OpenVidu Local Deployment
# uses: OpenVidu/actions/start-openvidu-local-deployment@main
# with:
# ref-openvidu-local-deployment: development
# pre_startup_commands: |
# cat <<'BASH' > pre_startup_commands.sh
# #!/bin/bash
# if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
# echo "Using Azure storage provider"
# yq e -i '
# del(.storage.s3) |
# .storage.azure = {
# "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
# "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
# "container_name": "openvidu-appdata-participants"
# }
# ' egress.yaml
# fi
# echo "Commenting out openvidu-meet container in docker-compose.yaml"
# if [ -f docker-compose.yaml ]; then
# yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
# fi
# BASH
# chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
# - name: Setup OpenVidu Meet
# uses: OpenVidu/actions/start-openvidu-meet@main
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-participants'
# - name: Run tests
# run: |
# cd backend
# npm run test:integration-participants
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-participants'
# 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
# - name: Clean up
# if: always()
# uses: OpenVidu/actions/cleanup@main
# test-meetings:
# name: Meetings API Tests
# runs-on: ov-actions-runner
# strategy:
# fail-fast: false
# matrix:
# storage-provider: [s3, abs]
# steps:
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: '22.13'
# - name: Install LK CLI
# run: curl -sSL https://get.livekit.io/cli | bash
# - name: Setup OpenVidu Local Deployment
# uses: OpenVidu/actions/start-openvidu-local-deployment@main
# with:
# ref-openvidu-local-deployment: development
# pre_startup_commands: |
# cat <<'BASH' > pre_startup_commands.sh
# #!/bin/bash
# if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
# echo "Using Azure storage provider"
# yq e -i '
# del(.storage.s3) |
# .storage.azure = {
# "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
# "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
# "container_name": "openvidu-appdata-meetings"
# }
# ' egress.yaml
# fi
# echo "Commenting out openvidu-meet container in docker-compose.yaml"
# if [ -f docker-compose.yaml ]; then
# yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
# fi
# BASH
# chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
# - name: Setup OpenVidu Meet
# uses: OpenVidu/actions/start-openvidu-meet@main
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-meetings'
# - name: Run tests
# run: |
# cd backend
# npm run test:integration-meetings
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-meetings'
# 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
# - name: Clean up
# if: always()
# uses: OpenVidu/actions/cleanup@main
# test-users:
# name: Users API Tests
# runs-on: ov-actions-runner
# strategy:
# fail-fast: false
# matrix:
# storage-provider: [s3, abs]
# steps:
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: '22.13'
# - name: Install LK CLI
# run: curl -sSL https://get.livekit.io/cli | bash
# - name: Setup OpenVidu Local Deployment
# uses: OpenVidu/actions/start-openvidu-local-deployment@main
# with:
# ref-openvidu-local-deployment: development
# pre_startup_commands: |
# cat <<'BASH' > pre_startup_commands.sh
# #!/bin/bash
# if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
# echo "Using Azure storage provider"
# yq e -i '
# del(.storage.s3) |
# .storage.azure = {
# "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
# "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
# "container_name": "openvidu-appdata-users"
# }
# ' egress.yaml
# fi
# echo "Commenting out openvidu-meet container in docker-compose.yaml"
# if [ -f docker-compose.yaml ]; then
# yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
# fi
# BASH
# chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
# - name: Setup OpenVidu Meet
# uses: OpenVidu/actions/start-openvidu-meet@main
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-users'
# - name: Run tests
# run: |
# cd backend
# npm run test:integration-users
# env:
# MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
# MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
# MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
# MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-users'
# 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
# - name: Clean up
# if: always()
# uses: OpenVidu/actions/cleanup@main
stop-runner:
name: Stop EC2 runner
needs: