ci: add GCS support to backend integration tests

This commit is contained in:
Piwccle 2025-09-24 17:48:53 +02:00
parent 8cd8394ff7
commit 9efda85a51

View File

@ -41,73 +41,73 @@ jobs:
security-group-id: ${{ vars.AWS_SECURITY_GROUP_ID }} security-group-id: ${{ vars.AWS_SECURITY_GROUP_ID }}
workflow-name: ${{ github.workflow }} workflow-name: ${{ github.workflow }}
repository-name: ${{ github.repository }} repository-name: ${{ github.repository }}
test-rooms: # test-rooms:
name: Rooms API Tests # name: Rooms API Tests
runs-on: ov-actions-runner # runs-on: ov-actions-runner
strategy: # strategy:
fail-fast: false # fail-fast: false
matrix: # matrix:
storage-provider: [s3, abs] # storage-provider: [s3, abs]
steps: # steps:
- name: Setup Node.js # - name: Setup Node.js
uses: actions/setup-node@v4 # uses: actions/setup-node@v4
with: # with:
node-version: '22.13' # node-version: '22.13'
- name: Install LK CLI # - name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash # run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment # - name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main # uses: OpenVidu/actions/start-openvidu-local-deployment@main
with: # with:
ref-openvidu-local-deployment: development # ref-openvidu-local-deployment: development
pre_startup_commands: | # pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh # cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash # #!/bin/bash
if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then # if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
echo "Using Azure storage provider" # echo "Using Azure storage provider"
yq e -i ' # yq e -i '
del(.storage.s3) | # del(.storage.s3) |
.storage.azure = { # .storage.azure = {
"account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}", # "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
"account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}", # "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
"container_name": "openvidu-appdata-rooms" # "container_name": "openvidu-appdata-rooms"
} # }
' egress.yaml # ' egress.yaml
fi # fi
echo "Commenting out openvidu-meet container in docker-compose.yaml" # echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then # if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml # yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi # fi
BASH # BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh # chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet # - name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main # uses: OpenVidu/actions/start-openvidu-meet@main
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-rooms' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-rooms'
- name: Run tests # - name: Run tests
run: | # run: |
cd backend # cd backend
npm run test:integration-rooms # npm run test:integration-rooms
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-rooms' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-rooms'
JEST_JUNIT_OUTPUT_DIR: './reports/' # JEST_JUNIT_OUTPUT_DIR: './reports/'
- name: Publish Test Report # - name: Publish Test Report
uses: mikepenz/action-junit-report@v4 # uses: mikepenz/action-junit-report@v4
if: always() # if: always()
with: # with:
report_paths: '**/reports/junit.xml' # report_paths: '**/reports/junit.xml'
fail_on_failure: true # fail_on_failure: true
require_tests: true # require_tests: true
- name: Clean up # - name: Clean up
if: always() # if: always()
uses: OpenVidu/actions/cleanup@main # uses: OpenVidu/actions/cleanup@main
test-recordings: test-recordings:
name: Recordings API Tests name: Recordings API Tests
@ -117,7 +117,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
storage-provider: [s3, abs] storage-provider: [s3, abs, gcs]
timeout-minutes: 30 timeout-minutes: 30
steps: steps:
- name: Setup Node.js - name: Setup Node.js
@ -143,14 +143,27 @@ jobs:
"container_name": "openvidu-appdata-recordings" "container_name": "openvidu-appdata-recordings"
} }
' egress.yaml ' egress.yaml
fi
elseif [[ "${{ matrix['storage-provider'] }}" == "gcs" ]]; then
echo "Using GCS storage provider"
yq e -i '
del(.storage.s3) |
.storage.gcs = {
"credentials_json": "${{ secrets.GCP_CREDENTIALS_JSON }}",
"bucket_name": "openvidu-appdata"
}
' egress.yaml
fi
echo "Commenting out openvidu-meet container in docker-compose.yaml" echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi fi
fi
BASH BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Save GCP credentials
if: matrix.storage-provider == 'gcs'
run: echo "${{ secrets.GCP_CREDENTIALS_JSON }}" > /credentials.json
- name: Setup OpenVidu Meet - name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main uses: OpenVidu/actions/start-openvidu-meet@main
env: env:
@ -158,6 +171,8 @@ jobs:
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-recordings' MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-recordings'
GOOGLE_APPLICATION_CREDENTIALS: '/credentials.json'
MEET_S3_BUCKET: 'openvidu-appdata'
- name: Run tests - name: Run tests
run: | run: |
cd backend cd backend
@ -167,6 +182,8 @@ jobs:
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-recordings' MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-recordings'
GOOGLE_APPLICATION_CREDENTIALS: '/credentials.json'
MEET_S3_BUCKET: 'openvidu-appdata'
JEST_JUNIT_OUTPUT_DIR: './reports/' JEST_JUNIT_OUTPUT_DIR: './reports/'
- name: Publish Test Report - name: Publish Test Report
uses: mikepenz/action-junit-report@v4 uses: mikepenz/action-junit-report@v4
@ -179,401 +196,401 @@ jobs:
if: always() if: always()
uses: OpenVidu/actions/cleanup@main uses: OpenVidu/actions/cleanup@main
test-webhooks: # test-webhooks:
name: Webhook Tests # name: Webhook Tests
runs-on: ov-actions-runner # runs-on: ov-actions-runner
strategy: # strategy:
fail-fast: false # fail-fast: false
matrix: # matrix:
storage-provider: [s3, abs] # storage-provider: [s3, abs]
steps: # steps:
- name: Setup Node.js # - name: Setup Node.js
uses: actions/setup-node@v4 # uses: actions/setup-node@v4
with: # with:
node-version: '22.13' # node-version: '22.13'
- name: Install LK CLI # - name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash # run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment # - name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main # uses: OpenVidu/actions/start-openvidu-local-deployment@main
with: # with:
ref-openvidu-local-deployment: development # ref-openvidu-local-deployment: development
pre_startup_commands: | # pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh # cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash # #!/bin/bash
if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then # if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
echo "Using Azure storage provider" # echo "Using Azure storage provider"
yq e -i ' # yq e -i '
del(.storage.s3) | # del(.storage.s3) |
.storage.azure = { # .storage.azure = {
"account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}", # "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
"account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}", # "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
"container_name": "openvidu-appdata-webhooks" # "container_name": "openvidu-appdata-webhooks"
} # }
' egress.yaml # ' egress.yaml
fi # fi
echo "Commenting out openvidu-meet container in docker-compose.yaml" # echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then # if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml # yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi # fi
BASH # BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh # chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet # - name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main # uses: OpenVidu/actions/start-openvidu-meet@main
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-webhooks' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-webhooks'
- name: Run tests # - name: Run tests
run: | # run: |
cd backend # cd backend
npm run test:integration-webhooks # npm run test:integration-webhooks
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-webhooks' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-webhooks'
JEST_JUNIT_OUTPUT_DIR: './reports/' # JEST_JUNIT_OUTPUT_DIR: './reports/'
- name: Publish Test Report # - name: Publish Test Report
uses: mikepenz/action-junit-report@v4 # uses: mikepenz/action-junit-report@v4
if: always() # if: always()
with: # with:
report_paths: '**/reports/junit.xml' # report_paths: '**/reports/junit.xml'
fail_on_failure: true # fail_on_failure: true
require_tests: true # require_tests: true
- name: Clean up # - name: Clean up
if: always() # if: always()
uses: OpenVidu/actions/cleanup@main # uses: OpenVidu/actions/cleanup@main
test-security: # test-security:
name: Security API Tests # name: Security API Tests
runs-on: ov-actions-runner # runs-on: ov-actions-runner
strategy: # strategy:
fail-fast: false # fail-fast: false
matrix: # matrix:
storage-provider: [s3, abs] # storage-provider: [s3, abs]
steps: # steps:
- name: Setup Node.js # - name: Setup Node.js
uses: actions/setup-node@v4 # uses: actions/setup-node@v4
with: # with:
node-version: '22.13' # node-version: '22.13'
- name: Install LK CLI # - name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash # run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment # - name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main # uses: OpenVidu/actions/start-openvidu-local-deployment@main
with: # with:
ref-openvidu-local-deployment: development # ref-openvidu-local-deployment: development
pre_startup_commands: | # pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh # cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash # #!/bin/bash
if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then # if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
echo "Using Azure storage provider" # echo "Using Azure storage provider"
yq e -i ' # yq e -i '
del(.storage.s3) | # del(.storage.s3) |
.storage.azure = { # .storage.azure = {
"account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}", # "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
"account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}", # "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
"container_name": "openvidu-appdata-security" # "container_name": "openvidu-appdata-security"
} # }
' egress.yaml # ' egress.yaml
fi # fi
echo "Commenting out openvidu-meet container in docker-compose.yaml" # echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then # if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml # yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi # fi
BASH # BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh # chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet # - name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main # uses: OpenVidu/actions/start-openvidu-meet@main
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-security' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-security'
- name: Run tests # - name: Run tests
run: | # run: |
cd backend # cd backend
npm run test:integration-security # npm run test:integration-security
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-security' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-security'
JEST_JUNIT_OUTPUT_DIR: './reports/' # JEST_JUNIT_OUTPUT_DIR: './reports/'
- name: Publish Test Report # - name: Publish Test Report
uses: mikepenz/action-junit-report@v4 # uses: mikepenz/action-junit-report@v4
if: always() # if: always()
with: # with:
report_paths: '**/reports/junit.xml' # report_paths: '**/reports/junit.xml'
fail_on_failure: true # fail_on_failure: true
require_tests: true # require_tests: true
- name: Clean up # - name: Clean up
if: always() # if: always()
uses: OpenVidu/actions/cleanup@main # uses: OpenVidu/actions/cleanup@main
test-global-config: # test-global-config:
name: Global Config API Tests # name: Global Config API Tests
runs-on: ov-actions-runner # runs-on: ov-actions-runner
strategy: # strategy:
fail-fast: false # fail-fast: false
matrix: # matrix:
storage-provider: [s3, abs] # storage-provider: [s3, abs]
steps: # steps:
- name: Setup Node.js # - name: Setup Node.js
uses: actions/setup-node@v4 # uses: actions/setup-node@v4
with: # with:
node-version: '22.13' # node-version: '22.13'
- name: Install LK CLI # - name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash # run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment # - name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main # uses: OpenVidu/actions/start-openvidu-local-deployment@main
with: # with:
ref-openvidu-local-deployment: development # ref-openvidu-local-deployment: development
pre_startup_commands: | # pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh # cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash # #!/bin/bash
if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then # if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
echo "Using Azure storage provider" # echo "Using Azure storage provider"
yq e -i ' # yq e -i '
del(.storage.s3) | # del(.storage.s3) |
.storage.azure = { # .storage.azure = {
"account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}", # "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
"account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}", # "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
"container_name": "openvidu-appdata-global-preferences" # "container_name": "openvidu-appdata-global-preferences"
} # }
' egress.yaml # ' egress.yaml
fi # fi
echo "Commenting out openvidu-meet container in docker-compose.yaml" # echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then # if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml # yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi # fi
BASH # BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh # chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet # - name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main # uses: OpenVidu/actions/start-openvidu-meet@main
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-global-preferences' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-global-preferences'
- name: Run tests # - name: Run tests
run: | # run: |
cd backend # cd backend
npm run test:integration-global-config # npm run test:integration-global-config
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-global-preferences' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-global-preferences'
JEST_JUNIT_OUTPUT_DIR: './reports/' # JEST_JUNIT_OUTPUT_DIR: './reports/'
- name: Publish Test Report # - name: Publish Test Report
uses: mikepenz/action-junit-report@v4 # uses: mikepenz/action-junit-report@v4
if: always() # if: always()
with: # with:
report_paths: '**/reports/junit.xml' # report_paths: '**/reports/junit.xml'
fail_on_failure: true # fail_on_failure: true
require_tests: true # require_tests: true
- name: Clean up # - name: Clean up
if: always() # if: always()
uses: OpenVidu/actions/cleanup@main # uses: OpenVidu/actions/cleanup@main
test-participants: # test-participants:
name: Participants API Tests # name: Participants API Tests
runs-on: ov-actions-runner # runs-on: ov-actions-runner
strategy: # strategy:
fail-fast: false # fail-fast: false
matrix: # matrix:
storage-provider: [s3, abs] # storage-provider: [s3, abs]
steps: # steps:
- name: Setup Node.js # - name: Setup Node.js
uses: actions/setup-node@v4 # uses: actions/setup-node@v4
with: # with:
node-version: '22.13' # node-version: '22.13'
- name: Install LK CLI # - name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash # run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment # - name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main # uses: OpenVidu/actions/start-openvidu-local-deployment@main
with: # with:
ref-openvidu-local-deployment: development # ref-openvidu-local-deployment: development
pre_startup_commands: | # pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh # cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash # #!/bin/bash
if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then # if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
echo "Using Azure storage provider" # echo "Using Azure storage provider"
yq e -i ' # yq e -i '
del(.storage.s3) | # del(.storage.s3) |
.storage.azure = { # .storage.azure = {
"account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}", # "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
"account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}", # "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
"container_name": "openvidu-appdata-participants" # "container_name": "openvidu-appdata-participants"
} # }
' egress.yaml # ' egress.yaml
fi # fi
echo "Commenting out openvidu-meet container in docker-compose.yaml" # echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then # if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml # yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi # fi
BASH # BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh # chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet # - name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main # uses: OpenVidu/actions/start-openvidu-meet@main
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-participants' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-participants'
- name: Run tests # - name: Run tests
run: | # run: |
cd backend # cd backend
npm run test:integration-participants # npm run test:integration-participants
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-participants' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-participants'
JEST_JUNIT_OUTPUT_DIR: './reports/' # JEST_JUNIT_OUTPUT_DIR: './reports/'
- name: Publish Test Report # - name: Publish Test Report
uses: mikepenz/action-junit-report@v4 # uses: mikepenz/action-junit-report@v4
if: always() # if: always()
with: # with:
report_paths: '**/reports/junit.xml' # report_paths: '**/reports/junit.xml'
fail_on_failure: true # fail_on_failure: true
require_tests: true # require_tests: true
- name: Clean up # - name: Clean up
if: always() # if: always()
uses: OpenVidu/actions/cleanup@main # uses: OpenVidu/actions/cleanup@main
test-meetings: # test-meetings:
name: Meetings API Tests # name: Meetings API Tests
runs-on: ov-actions-runner # runs-on: ov-actions-runner
strategy: # strategy:
fail-fast: false # fail-fast: false
matrix: # matrix:
storage-provider: [s3, abs] # storage-provider: [s3, abs]
steps: # steps:
- name: Setup Node.js # - name: Setup Node.js
uses: actions/setup-node@v4 # uses: actions/setup-node@v4
with: # with:
node-version: '22.13' # node-version: '22.13'
- name: Install LK CLI # - name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash # run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment # - name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main # uses: OpenVidu/actions/start-openvidu-local-deployment@main
with: # with:
ref-openvidu-local-deployment: development # ref-openvidu-local-deployment: development
pre_startup_commands: | # pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh # cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash # #!/bin/bash
if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then # if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
echo "Using Azure storage provider" # echo "Using Azure storage provider"
yq e -i ' # yq e -i '
del(.storage.s3) | # del(.storage.s3) |
.storage.azure = { # .storage.azure = {
"account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}", # "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
"account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}", # "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
"container_name": "openvidu-appdata-meetings" # "container_name": "openvidu-appdata-meetings"
} # }
' egress.yaml # ' egress.yaml
fi # fi
echo "Commenting out openvidu-meet container in docker-compose.yaml" # echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then # if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml # yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi # fi
BASH # BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh # chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet # - name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main # uses: OpenVidu/actions/start-openvidu-meet@main
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-meetings' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-meetings'
- name: Run tests # - name: Run tests
run: | # run: |
cd backend # cd backend
npm run test:integration-meetings # npm run test:integration-meetings
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-meetings' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-meetings'
JEST_JUNIT_OUTPUT_DIR: './reports/' # JEST_JUNIT_OUTPUT_DIR: './reports/'
- name: Publish Test Report # - name: Publish Test Report
uses: mikepenz/action-junit-report@v4 # uses: mikepenz/action-junit-report@v4
if: always() # if: always()
with: # with:
report_paths: '**/reports/junit.xml' # report_paths: '**/reports/junit.xml'
fail_on_failure: true # fail_on_failure: true
require_tests: true # require_tests: true
- name: Clean up # - name: Clean up
if: always() # if: always()
uses: OpenVidu/actions/cleanup@main # uses: OpenVidu/actions/cleanup@main
test-users: # test-users:
name: Users API Tests # name: Users API Tests
runs-on: ov-actions-runner # runs-on: ov-actions-runner
strategy: # strategy:
fail-fast: false # fail-fast: false
matrix: # matrix:
storage-provider: [s3, abs] # storage-provider: [s3, abs]
steps: # steps:
- name: Setup Node.js # - name: Setup Node.js
uses: actions/setup-node@v4 # uses: actions/setup-node@v4
with: # with:
node-version: '22.13' # node-version: '22.13'
- name: Install LK CLI # - name: Install LK CLI
run: curl -sSL https://get.livekit.io/cli | bash # run: curl -sSL https://get.livekit.io/cli | bash
- name: Setup OpenVidu Local Deployment # - name: Setup OpenVidu Local Deployment
uses: OpenVidu/actions/start-openvidu-local-deployment@main # uses: OpenVidu/actions/start-openvidu-local-deployment@main
with: # with:
ref-openvidu-local-deployment: development # ref-openvidu-local-deployment: development
pre_startup_commands: | # pre_startup_commands: |
cat <<'BASH' > pre_startup_commands.sh # cat <<'BASH' > pre_startup_commands.sh
#!/bin/bash # #!/bin/bash
if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then # if [[ "${{ matrix['storage-provider'] }}" == "abs" ]]; then
echo "Using Azure storage provider" # echo "Using Azure storage provider"
yq e -i ' # yq e -i '
del(.storage.s3) | # del(.storage.s3) |
.storage.azure = { # .storage.azure = {
"account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}", # "account_name": "${{ vars.MEET_AZURE_ACCOUNT_NAME }}",
"account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}", # "account_key": "${{ secrets.MEET_AZURE_ACCOUNT_KEY }}",
"container_name": "openvidu-appdata-users" # "container_name": "openvidu-appdata-users"
} # }
' egress.yaml # ' egress.yaml
fi # fi
echo "Commenting out openvidu-meet container in docker-compose.yaml" # echo "Commenting out openvidu-meet container in docker-compose.yaml"
if [ -f docker-compose.yaml ]; then # if [ -f docker-compose.yaml ]; then
yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml # yq e 'del(.services.openvidu-meet)' -i docker-compose.yaml
fi # fi
BASH # BASH
chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh # chmod +x pre_startup_commands.sh && ./pre_startup_commands.sh
- name: Setup OpenVidu Meet # - name: Setup OpenVidu Meet
uses: OpenVidu/actions/start-openvidu-meet@main # uses: OpenVidu/actions/start-openvidu-meet@main
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-users' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-users'
- name: Run tests # - name: Run tests
run: | # run: |
cd backend # cd backend
npm run test:integration-users # npm run test:integration-users
env: # env:
MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }} # MEET_BLOB_STORAGE_MODE: ${{ matrix.storage-provider }}
MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }} # MEET_AZURE_ACCOUNT_NAME: ${{ vars.MEET_AZURE_ACCOUNT_NAME }}
MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }} # MEET_AZURE_ACCOUNT_KEY: ${{ secrets.MEET_AZURE_ACCOUNT_KEY }}
MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-users' # MEET_AZURE_CONTAINER_NAME: 'openvidu-appdata-users'
JEST_JUNIT_OUTPUT_DIR: './reports/' # JEST_JUNIT_OUTPUT_DIR: './reports/'
- name: Publish Test Report # - name: Publish Test Report
uses: mikepenz/action-junit-report@v4 # uses: mikepenz/action-junit-report@v4
if: always() # if: always()
with: # with:
report_paths: '**/reports/junit.xml' # report_paths: '**/reports/junit.xml'
fail_on_failure: true # fail_on_failure: true
require_tests: true # require_tests: true
- name: Clean up # - name: Clean up
if: always() # if: always()
uses: OpenVidu/actions/cleanup@main # uses: OpenVidu/actions/cleanup@main
stop-runner: stop-runner:
name: Stop EC2 runner name: Stop EC2 runner