Skip to content

Use IAM role and update publish workflow #2064

Use IAM role and update publish workflow

Use IAM role and update publish workflow #2064

name: Continuous Integration Workflow
on:
pull_request:
branches:
- main
- 'release-**.x'
env:
SELENIUM_GRID_PROVIDER: saucelabs
CLOUD_WATCH_METRIC: false
TEST_TYPE: Integration-Test
SAUCE_USERNAME: ${{secrets.SAUCE_USERNAME}}
SAUCE_ACCESS_KEY: ${{secrets.SAUCE_ACCESS_KEY}}
PRE_RUN_SCRIPT_URL: ${{secrets.PRE_RUN_SCRIPT_URL}}
permissions:
id-token: write # This is required for requesting the JWT
jobs:
build:
name: Build and Run Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout Package
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Using Node.js 20.x
uses: actions/setup-node@v1
with:
node-version: 20.x
- name: Clean Install
run: npm ci
- name: Build
run: npm run build:release
integ-content-share-job-one:
name: Content Share Integration Test Suite One
runs-on: ubuntu-latest
steps:
- name: Checkout Package
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Check if needed to run
id: test_needed
run: |
source ${GITHUB_WORKSPACE}/integration/js/script/need-integ-test
check_if_integ_tests_required
echo "integ_test_required=$requires_integration_test" >> $GITHUB_OUTPUT
- name: Setup GitHub Actions Host
if: steps.test_needed.outputs.integ_test_required == 'true'
uses: ./.github/actions/setup-integration-test
with:
sauce-username: ${{ secrets.SAUCE_USERNAME }}
sauce-access-key: ${{ secrets.SAUCE_ACCESS_KEY }}
aws-role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME_SDK_DEV }}
aws-role-session-name: ${{ env.TEST_TYPE }}
- name: Run Content Share Integration Test
if: steps.test_needed.outputs.integ_test_required == 'true'
run: npm run test:integration-content-share-test-suite-one
integ-content-share-job-two:
name: Content Share Integration Test Suite Two
runs-on: ubuntu-latest
steps:
- name: Checkout Package
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Check if needed to run
id: test_needed
run: |
source ${GITHUB_WORKSPACE}/integration/js/script/need-integ-test
check_if_integ_tests_required
echo "integ_test_required=$requires_integration_test" >> $GITHUB_OUTPUT
- name: Setup GitHub Actions Host
if: steps.test_needed.outputs.integ_test_required == 'true'
uses: ./.github/actions/setup-integration-test
with:
sauce-username: ${{ secrets.SAUCE_USERNAME }}
sauce-access-key: ${{ secrets.SAUCE_ACCESS_KEY }}
aws-role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME_SDK_DEV }}
aws-role-session-name: ${{ env.TEST_TYPE }}
- name: Run Content Share Integration Test
if: steps.test_needed.outputs.integ_test_required == 'true'
run: npm run test:integration-content-share-test-suite-two
integ-background-blur:
name: Audio and Video Transforms Integration Test
runs-on: ubuntu-latest
steps:
- name: Checkout Package
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Check if needed to run
id: test_needed
run: |
source ${GITHUB_WORKSPACE}/integration/js/script/need-integ-test
check_if_integ_tests_required
echo "integ_test_required=$requires_integration_test" >> $GITHUB_OUTPUT
- name: Setup GitHub Actions Host
if: steps.test_needed.outputs.integ_test_required == 'true'
uses: ./.github/actions/setup-integration-test
with:
sauce-username: ${{ secrets.SAUCE_USERNAME }}
sauce-access-key: ${{ secrets.SAUCE_ACCESS_KEY }}
aws-role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME_SDK_DEV }}
aws-role-session-name: ${{ env.TEST_TYPE }}
- name: Run Background Blur Integration Test
if: steps.test_needed.outputs.integ_test_required == 'true'
run: npm run test:integration-background-blur
- name: Run Echo Reduction Integration Test
if: steps.test_needed.outputs.integ_test_required == 'true'
run: npm run test:integration-echo-reduction
integ-audio:
name: Audio Integration Test
runs-on: ubuntu-latest
steps:
- name: Checkout Package
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Check if needed to run
id: test_needed
run: |
source ${GITHUB_WORKSPACE}/integration/js/script/need-integ-test
check_if_integ_tests_required
echo "integ_test_required=$requires_integration_test" >> $GITHUB_OUTPUT
- name: Setup GitHub Actions Host
if: steps.test_needed.outputs.integ_test_required == 'true'
uses: ./.github/actions/setup-integration-test
with:
sauce-username: ${{ secrets.SAUCE_USERNAME }}
sauce-access-key: ${{ secrets.SAUCE_ACCESS_KEY }}
aws-role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME_SDK_DEV }}
aws-role-session-name: ${{ env.TEST_TYPE }}
- name: Run Audio Integration Test
if: steps.test_needed.outputs.integ_test_required == 'true'
run: npm run test:integration-audio
integ-messaging:
name: Messaging Integration Test
runs-on: ubuntu-latest
env:
MESSAGING_USER_ARN: ${{secrets.MESSAGING_USER_ARN}}
steps:
- name: Checkout Package
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Check if needed to run
id: test_needed
run: |
source ${GITHUB_WORKSPACE}/integration/js/script/need-integ-test
check_if_integ_tests_required
echo "integ_test_required=$requires_integration_test" >> $GITHUB_OUTPUT
- name: Setup GitHub Actions Host
if: steps.test_needed.outputs.integ_test_required == 'true'
uses: ./.github/actions/setup-integration-test
with:
sauce-username: ${{ secrets.SAUCE_USERNAME }}
sauce-access-key: ${{ secrets.SAUCE_ACCESS_KEY }}
aws-role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME_SDK_DEV }}
aws-role-session-name: ${{ env.TEST_TYPE }}
- name: Setup userArn
if: steps.test_needed.outputs.integ_test_required == 'true'
run: integration/js/script/test-setup
- name: Run Messaging Integration Test
if: steps.test_needed.outputs.integ_test_required == 'true'
run: npm run test:integration-messaging
integ-data-message:
name: Miscellaneous Integration Test
runs-on: ubuntu-latest
steps:
- name: Checkout Package
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Check if needed to run
id: test_needed
run: |
source ${GITHUB_WORKSPACE}/integration/js/script/need-integ-test
check_if_integ_tests_required
echo "integ_test_required=$requires_integration_test" >> $GITHUB_OUTPUT
- name: Setup GitHub Actions Host
if: steps.test_needed.outputs.integ_test_required == 'true'
uses: ./.github/actions/setup-integration-test
with:
sauce-username: ${{ secrets.SAUCE_USERNAME }}
sauce-access-key: ${{ secrets.SAUCE_ACCESS_KEY }}
aws-role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME_SDK_DEV }}
aws-role-session-name: ${{ env.TEST_TYPE }}
- name: Run Data Message Integration Test
if: steps.test_needed.outputs.integ_test_required == 'true'
run: npm run test:integration-data-message
- name: Run Meeting Readiness Checker Integration Test
if: steps.test_needed.outputs.integ_test_required == 'true'
run: npm run test:integration-meeting-readiness-checker
- name: Run Meeting End Integration Test
if: steps.test_needed.outputs.integ_test_required == 'true'
run: npm run test:integration-meeting-end
integ-transcription:
name: Transcription Integration Test
runs-on: ubuntu-latest
steps:
- name: Checkout Package
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Check if needed to run
id: test_needed
run: |
source ${GITHUB_WORKSPACE}/integration/js/script/need-integ-test
check_if_integ_tests_required
echo "integ_test_required=$requires_integration_test" >> $GITHUB_OUTPUT
- name: Setup GitHub Actions Host
if: steps.test_needed.outputs.integ_test_required == 'true'
uses: ./.github/actions/setup-integration-test
with:
sauce-username: ${{ secrets.SAUCE_USERNAME }}
sauce-access-key: ${{ secrets.SAUCE_ACCESS_KEY }}
aws-role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME_SDK_DEV }}
aws-role-session-name: ${{ env.TEST_TYPE }}
- name: Run Transcription Integration Test
if: steps.test_needed.outputs.integ_test_required == 'true'
run: npm run test:integration-transcription
integ-video:
name: Video Integration Test
runs-on: ubuntu-latest
steps:
- name: Checkout Package
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Check if needed to run
id: test_needed
run: |
source ${GITHUB_WORKSPACE}/integration/js/script/need-integ-test
check_if_integ_tests_required
echo "integ_test_required=$requires_integration_test" >> $GITHUB_OUTPUT
- name: Setup GitHub Actions Host
if: steps.test_needed.outputs.integ_test_required == 'true'
uses: ./.github/actions/setup-integration-test
with:
sauce-username: ${{ secrets.SAUCE_USERNAME }}
sauce-access-key: ${{ secrets.SAUCE_ACCESS_KEY }}
aws-role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME_SDK_DEV }}
aws-role-session-name: ${{ env.TEST_TYPE }}
- name: Run Video Integ Test
if: steps.test_needed.outputs.integ_test_required == 'true'
run: npm run test:integration-video
integ-video-app:
name: Video Test App Integration Test
runs-on: ubuntu-latest
steps:
- name: Checkout Package
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Check if needed to run
id: test_needed
run: |
source ${GITHUB_WORKSPACE}/integration/js/script/need-integ-test
check_if_integ_tests_required
echo "integ_test_required=$requires_integration_test" >> $GITHUB_OUTPUT
- name: Setup GitHub Actions Host
if: steps.test_needed.outputs.integ_test_required == 'true'
uses: ./.github/actions/setup-integration-test
with:
sauce-username: ${{ secrets.SAUCE_USERNAME }}
sauce-access-key: ${{ secrets.SAUCE_ACCESS_KEY }}
aws-role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME_SDK_DEV }}
aws-role-session-name: ${{ env.TEST_TYPE }}
- name: Run Video Test App Integ Test
if: steps.test_needed.outputs.integ_test_required == 'true'
run: npm run test:integration-video-test-app