diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index 816e5ebf..b4c85153 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -19,8 +19,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - # node: ["18", "20", "22"] - node: ["22"] + node: ["18", "20", "22"] # browser: ["chromium", "firefox", "webkit"] browser: ["chromium"] env: @@ -46,6 +45,12 @@ jobs: # name: playwright-report # path: playwright-report/ # retention-days: 30 + + slack_notify_succeeded: + needs: [e2e-test] + runs-on: ubuntu-latest + if: success() + steps: - name: Slack Notification if: success() uses: rtCamp/action-slack-notify@v2 @@ -55,6 +60,11 @@ jobs: SLACK_TITLE: Succeeded SLACK_ICON_EMOJI: ":star-struck:" SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + slack_notify_failed: + needs: [e2e-test] + runs-on: ubuntu-latest + if: failure() + steps: - name: Slack Notification if: failure() uses: rtCamp/action-slack-notify@v2 diff --git a/.github/workflows/npm-pkg-e2e-test.yml b/.github/workflows/npm-pkg-e2e-test.yml new file mode 100644 index 00000000..c418ded0 --- /dev/null +++ b/.github/workflows/npm-pkg-e2e-test.yml @@ -0,0 +1,93 @@ +name: npm-pkg-e2e-test + +on: + workflow_dispatch: + # push: + # branches: + # - develop + # - feature/* + # paths-ignore: + # - "**.md" + # - "LICENSE" + # - "NOTICE" + schedule: + # UTC 時間で毎日 2:00 (JST で 11:00) に実行、月曜日から金曜日 + - cron: "0 2 * * 1-5" + +jobs: + npm-pkg-e2e-test: + timeout-minutes: 20 + continue-on-error: true + runs-on: ubuntu-latest + strategy: + matrix: + # メンテナンスはおてて + sdk_version: [ + "2024.1.2", + "2023.2.0", + "2023.1.0", + "2022.3.2", + "2022.1.0", + "2021.2.3", + ] + node: ["18", "20", "22"] + # node: ["18"] + # browser: ["chromium", "firefox", "webkit"] + browser: ["chromium"] + env: + VITE_SORA_SIGNALING_URL: ${{ secrets.TEST_SIGNALING_URL }} + VITE_SORA_CHANNEL_ID_PREFIX: ${{ secrets.TEST_CHANNEL_ID_PREFIX }} + VITE_ACCESS_TOKEN: ${{ secrets.TEST_SECRET_KEY }} + NPM_PKG_E2E_TEST: true + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + - uses: pnpm/action-setup@v4 + # sora-js-sdk を npm からインストールする + - run: pnpm --version + - run: pnpm install + - run: pnpm add -E sora-js-sdk@${{ matrix.sdk_version }} + + working-directory: ./examples + # pnpm run build しない + - run: pnpm exec playwright install ${{ matrix.browser }} --with-deps + - run: pnpm exec playwright test --project=${{ matrix.browser }} + env: + VITE_SORA_CHANNEL_ID_SUFFIX: _${{ matrix.node }}_${{ matrix.sdk_version }} + # - uses: actions/upload-artifact@v4 + # if: always() + # with: + # name: playwright-report + # path: playwright-report/ + # retention-days: 30 + + slack_notify_succeeded: + needs: [npm-pkg-e2e-test] + runs-on: ubuntu-latest + if: success() + steps: + - name: Slack Notification + if: success() + uses: rtCamp/action-slack-notify@v2 + env: + SLACK_CHANNEL: sora-js-sdk + SLACK_COLOR: good + SLACK_TITLE: Succeeded + SLACK_ICON_EMOJI: ":star-struck:" + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + slack_notify_failed: + needs: [npm-pkg-e2e-test] + runs-on: ubuntu-latest + if: failure() + steps: + - name: Slack Notification + if: failure() + uses: rtCamp/action-slack-notify@v2 + env: + SLACK_CHANNEL: sora-js-sdk + SLACK_COLOR: danger + SLACK_TITLE: Failed + SLACK_ICON_EMOJI: ":japanese_ogre:" + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} diff --git a/CHANGES.md b/CHANGES.md index e77da4a5..8960ee15 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -35,6 +35,8 @@ ### misc +- [ADD] npm に登録されている stable SDK の E2E テストを追加する + - @voluntas - [FIX] RTCPeerConnection.close は Promise ではないので await しないようにする - @voluntas - [CHANGE] ビルドシステムを Vite に変更する diff --git a/examples/messaging/main.mts b/examples/messaging/main.mts index 0bc616c8..7543ee58 100644 --- a/examples/messaging/main.mts +++ b/examples/messaging/main.mts @@ -79,6 +79,7 @@ class SoraClient { ) { this.sora = Sora.connection(signalingUrl, this.debug) this.channelId = `${channelIdPrefix}messaging${channelIdSuffix}` + console.log(channelIdPrefix) this.metadata = { access_token: accessToken } this.options = { diff --git a/examples/sendonly/index.html b/examples/sendonly/index.html index f9c3ae60..883b7018 100644 --- a/examples/sendonly/index.html +++ b/examples/sendonly/index.html @@ -8,6 +8,7 @@