Skip to content

test: integration tests for PR pipeline #7

test: integration tests for PR pipeline

test: integration tests for PR pipeline #7

name: Integration Tests
on:
pull_request:
workflow_dispatch:
jobs:
new-integration-tests:
runs-on: ubuntu-latest
environment: ${{ matrix.qa_env_mode }}
strategy:
fail-fast: false
max-parallel: 3
matrix:
qa_env_mode: [qa_dev, qa_staging]
include:
- qa_env_mode: qa_dev
environment: dev
- qa_env_mode: qa_staging
environment: staging
env:
INTEGRATION_DIR: ./packages/millicast-sdk/integration-tests
INTEGRATION_TEST_CONFIG: ./packages/millicast-sdk/integration-tests/test.config.json
VITE_ACCOUNT_ID: ${{secrets.MILLICAST_ACCOUNT_ID}}
VITE_DIRECTOR_ENDPOINT: ${{vars.MILLICAST_DIRECTOR_EP}}
MILLICAST_API_ENDPOINT: ${{vars.MILLICAST_API_EP}}
MILLICAST_API_SECRET: ${{secrets.MILLICAST_API_SECRET}}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-install
- name: Suite Setup
run: |
sudo apt-get update
sudo apt-get install -y moreutils
sudo apt-get --only-upgrade install google-chrome-stable
npm install playwright
echo "check endpoint variable:"
echo ${MILLICAST_API_ENDPOINT}
NEW_TOKEN=$(./packages/millicast-sdk/integration-tests/ci/createToken.sh ${MILLICAST_API_ENDPOINT} ${MILLICAST_API_SECRET})
VITE_PUBLISH_TOKEN=$(echo $NEW_TOKEN | jq -r '.data.token')
VITE_STREAM_NAME=$(echo $NEW_TOKEN | jq -r '.data.streams[0].streamName')
NEW_TOKEN_ID=$(echo $NEW_TOKEN | jq -r '.data.id')
npm run build
npm run demo-app:setup
- name: Execute Test Suite
run: |
# Disable artifact collection
jq '.video = "off"' ${INTEGRATION_TEST_CONFIG} | sponge ${INTEGRATION_TEST_CONFIG}
jq '.trace = "off"' ${INTEGRATION_TEST_CONFIG} | sponge ${INTEGRATION_TEST_CONFIG}
jq '.har = "off"' ${INTEGRATION_TEST_CONFIG} | sponge ${INTEGRATION_TEST_CONFIG}
npm run test-websdk -- tags "not @skip and not @ignore"
- name: Suite Teardown
if: always()
run: |
npm run demo-app:teardown
npm run test:report
./packages/millicast-sdk/integration-tests/ci/deleteToken.sh ${MILLICAST_API_ENDPOINT} ${MILLICAST_API_SECRET} ${NEW_TOKEN_ID}
- name: Upload artifact
uses: actions/upload-artifact@v3
if: always()
with:
name: test-artifacts
path: ./packages/millicast-sdk/integration-tests/test-reports/
retention-days: 2