From 94fa228e826f40b1f6c2493dbd71be54cc8db04d Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Fri, 22 Dec 2023 16:43:04 +0530 Subject: [PATCH 01/16] added github actions --- .github/pull_request_template.md | 1 + .github/workflows/release_apps.yml | 178 +++++++++++++++++++++++++++++ .github/workflows/trunk-check.yml | 22 ++++ .github/workflows/vale.yml | 15 ++- .vale.ini | 2 +- 5 files changed, 209 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/release_apps.yml create mode 100644 .github/workflows/trunk-check.yml diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index f57f133ea..7e85f3145 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -15,6 +15,7 @@ ### Pre-launch Checklist - [ ] The [Documentation] is updated accordingly, or this PR doesn't require it. +- [ ] I have updated the `ExampleAppChangelog.txt` file with relevant changes. - [ ] I updated/added relevant documentation (doc comments with `///`). - [ ] I listed at least one issue that this PR fixes in the description above. - [ ] I added new tests to check the change I am making, or this PR is test-exempt. diff --git a/.github/workflows/release_apps.yml b/.github/workflows/release_apps.yml new file mode 100644 index 000000000..97972ef82 --- /dev/null +++ b/.github/workflows/release_apps.yml @@ -0,0 +1,178 @@ +name: Release Apps + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref }} + cancel-in-progress: true + +on: + workflow_dispatch: + push: + branches: + - release + +permissions: + checks: write + contents: read + +jobs: + release_android_app: + name: Release Android App + runs-on: ubuntu-latest + timeout-minutes: 30 + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: 11 + distribution: zulu + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 16 + + - name: Create Release APK + run: | + cd ./packages/react-native-hms + npm install + cd ../react-native-room-kit + npm install + cd ./example + npm install + cd ./android + chmod +x ./gradlew + ./gradlew assembleRelease + + - name: Upload artifact to Firebase App Distribution + uses: wzieba/Firebase-Distribution-Github-Action@v1.7.0 + with: + appId: ${{ secrets.FIREBASE_APP_ID }} + serviceCredentialsFileContent: ${{ secrets.CREDENTIAL_FILE_CONTENT }} + groups: internal, External + releaseNotesFile: ./packages/react-native-room-kit/example/ExampleAppChangelog.txt + file: ./packages/react-native-room-kit/example/android/app/build/outputs/apk/release/app-release.apk + + - name: Extract Branch Name + shell: bash + run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT + id: extract_branch + + - name: Post Slack Notification + uses: rtCamp/action-slack-notify@v2.2.1 + env: + SLACK_CHANNEL: dogfooding + SLACK_COLOR: ${{ job.status }} + SLACK_ICON_EMMOJI: ":react:" + SLACK_USERNAME: React Native Bot + SLACK_WEBHOOK: ${{ secrets.SLACK_URL }} + SLACK_TITLE: ":react: 🎉 React Native Android App released! 🎊 :react:" + SLACK_MESSAGE: 📝 Changelog 🔗 https://github.com/100mslive/100ms-react-native/blob/${{ steps.extract_branch.outputs.branch }}/packages/react-native-room-kit/example/ExampleAppChangelog.txt + SLACK_FOOTER: 🤖 Download from Firebase 👉 https://appdistribution.firebase.dev/i/7b7ab3b30e627c35 + + release_ios_app: + name: Release iOS App + runs-on: macOS-latest + timeout-minutes: 60 + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: 11 + distribution: zulu + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 16 + + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.2 + bundler-cache: true + + - name: Install Node Modules + run: | + cd ./packages/react-native-hms + npm install + cd ../react-native-room-kit + npm install + cd ./example + npm install + + - name: Install Pods + run: | + sudo gem install cocoapods + cd ./packages/react-native-room-kit/example/ios + pod install + + - name: Build iOS App for Firebase App Distribution + uses: yukiarrr/ios-build-action@v1.11.1 + with: + project-path: packages/react-native-room-kit/example/ios/RNExample.xcodeproj + p12-base64: ${{ secrets.IOS_P12_BASE64 }} + certificate-password: ${{ secrets.IOS_CERTIFICATE_PASSWORD }} + mobileprovision-base64: | + ${{ secrets.ADHOC_MOBILEPROVISION_BASE64 }} + ${{ secrets.ADHOCEXTENSION_MOBILEPROVISION_BASE64 }} + code-signing-identity: iPhone Distribution + team-id: ${{ secrets.IOS_TEAM_ID }} + workspace-path: packages/react-native-room-kit/example/ios/RNExample.xcworkspace + scheme: RNExample + export-method: ad-hoc + export-options: packages/react-native-room-kit/example/ios/ExportOptions.plist + + - name: Deploy to Firebase + run: | + cd ./packages/react-native-room-kit/example/ios + npm install -g firebase-tools@12.9.1 + firebase appdistribution:distribute $GITHUB_WORKSPACE/output.ipa --app ${{ secrets.FIREBASE_APP_ID }} --token ${{ secrets.FIREBASE_TOKEN }} --release-notes-file ../ExampleAppChangelog.txt --groups internal,External + + - name: Build iOS App for TestFlight + uses: yukiarrr/ios-build-action@v1.11.1 + with: + project-path: packages/react-native-room-kit/example/ios/RNExample.xcodeproj + p12-base64: ${{ secrets.IOS_P12_BASE64 }} + certificate-password: ${{ secrets.IOS_CERTIFICATE_PASSWORD }} + mobileprovision-base64: | + ${{ secrets.APPSTORE_MOBILEPROVISION_BASE64 }} + ${{ secrets.APPSTORE_BROADCAST_MOBILEPROVISION_BASE64 }} + code-signing-identity: iPhone Distribution + team-id: ${{ secrets.IOS_TEAM_ID }} + workspace-path: packages/react-native-room-kit/example/ios/RNExample.xcworkspace + scheme: RNExample + export-options: packages/react-native-room-kit/example/ios/AppStoreExportOptions.plist + output-path: ./packages/output.ipa + + - name: Upload app to TestFlight + uses: apple-actions/upload-testflight-build@v1 + with: + app-path: ./packages/output.ipa + issuer-id: ${{ secrets.APPSTORE_ISSUER_ID }} + api-key-id: ${{ secrets.APPSTORE_API_KEY_ID }} + api-private-key: ${{ secrets.APPSTORE_API_PRIVATE_KEY }} + + - name: Extract Branch Name + shell: bash + run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT + id: extract_branch + + - name: Post Slack Notification + uses: rtCamp/action-slack-notify@v2.2.1 + env: + SLACK_CHANNEL: dogfooding + SLACK_COLOR: ${{ job.status }} + SLACK_ICON_EMMOJI: ":react:" + SLACK_USERNAME: React Native Bot + SLACK_WEBHOOK: ${{ secrets.SLACK_URL }} + SLACK_TITLE: ":react: 🎉 React Native iOS App released! 🎊 :react:" + SLACK_MESSAGE: 📝 Changelog 🔗 https://github.com/100mslive/100ms-react-native/blob/${{ steps.extract_branch.outputs.branch }}/packages/react-native-room-kit/example/ExampleAppChangelog.txt + SLACK_FOOTER: 🍎 Download from Firebase 👉 https://appdistribution.firebase.dev/i/bdfa6517b69c31d6 🍎 Download from TestFlight 👉 https://testflight.apple.com/join/v4bSIPad diff --git a/.github/workflows/trunk-check.yml b/.github/workflows/trunk-check.yml new file mode 100644 index 000000000..19ff70095 --- /dev/null +++ b/.github/workflows/trunk-check.yml @@ -0,0 +1,22 @@ +name: Pull Request +on: [pull_request] +concurrency: + group: ${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +permissions: read-all + +jobs: + trunk_check: + name: Trunk Check Runner + runs-on: ubuntu-latest + permissions: + checks: write + contents: read + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Trunk Check + uses: trunk-io/trunk-action@v1.1.9 diff --git a/.github/workflows/vale.yml b/.github/workflows/vale.yml index 33339f786..6b3dab3a7 100644 --- a/.github/workflows/vale.yml +++ b/.github/workflows/vale.yml @@ -1,16 +1,15 @@ name: Vale Linter on: - workflow_dispatch: - pull_request: - branches: - - develop - - main + workflow_dispatch: + pull_request: + branches: + - develop + - main permissions: - checks: write - contents: read - + checks: write + contents: read jobs: vale: diff --git a/.vale.ini b/.vale.ini index edc8ae523..6646ca3a5 100644 --- a/.vale.ini +++ b/.vale.ini @@ -6,7 +6,7 @@ Vocab = HMSVocab Packages = Google, Readability -[*.{md,json,js,ts,tsx,jsx,java,kt,h,m,mm,swift}] +[*.{md}] BasedOnStyles = Vale, Google BlockIgnores = (?s) *(\x60\x60\x60[a-z]*\n[\s\S]*?\x60\x60\x60) From d6fc1ad0fe844a8a4158ce150022b947ca93bfd5 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Sat, 23 Dec 2023 14:08:00 +0530 Subject: [PATCH 02/16] updated script --- .github/workflows/build.yml | 2 +- .github/workflows/firstinteraction.yml | 2 +- .github/workflows/release_apps.yml | 6 +++++- .github/workflows/stale.yml | 4 ++-- .github/workflows/vale.yml | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 99f7d9d85..a500e5d47 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,7 +5,7 @@ concurrency: cancel-in-progress: true on: - workflow_dispatch: + workflow_dispatch: {} push: branches: - main diff --git a/.github/workflows/firstinteraction.yml b/.github/workflows/firstinteraction.yml index e2515f3c5..536e4a290 100644 --- a/.github/workflows/firstinteraction.yml +++ b/.github/workflows/firstinteraction.yml @@ -1,7 +1,7 @@ name: first-interaction on: - workflow_dispatch: + workflow_dispatch: {} issues: types: [opened] pull_request: diff --git a/.github/workflows/release_apps.yml b/.github/workflows/release_apps.yml index 97972ef82..542e545ee 100644 --- a/.github/workflows/release_apps.yml +++ b/.github/workflows/release_apps.yml @@ -5,10 +5,12 @@ concurrency: cancel-in-progress: true on: - workflow_dispatch: + workflow_dispatch: {} push: branches: - release + tags: + - v* permissions: checks: write @@ -23,6 +25,8 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Setup Java uses: actions/setup-java@v4 diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index a42fecfc0..155bab898 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,6 +1,6 @@ name: 'Close stale issues and PRs' on: - workflow_dispatch: + workflow_dispatch: {} schedule: - cron: '30 1 * * *' @@ -17,4 +17,4 @@ jobs: days-before-issue-stale: 30 days-before-pr-stale: 45 days-before-issue-close: 5 - days-before-pr-close: 10 \ No newline at end of file + days-before-pr-close: 10 diff --git a/.github/workflows/vale.yml b/.github/workflows/vale.yml index 6b3dab3a7..b14eaeacd 100644 --- a/.github/workflows/vale.yml +++ b/.github/workflows/vale.yml @@ -1,7 +1,7 @@ name: Vale Linter on: - workflow_dispatch: + workflow_dispatch: {} pull_request: branches: - develop From f18a7c52feeee8e6a77e6edc6c2c3e00eaffff5a Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Sat, 23 Dec 2023 14:08:09 +0530 Subject: [PATCH 03/16] added prepack step --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a500e5d47..5639dba4f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -49,6 +49,11 @@ jobs: - name: Install dependencies run: cd packages/react-native-hms/example/ && npm install && cd ../../react-native-room-kit/example/ && npm install + - name: Prepack + run: | + cd packages/react-native-hms/ && npm run prepack + cd ../react-native-room-kit/ && npm run prepack + - name: Make Gradlew Executable run: cd packages/react-native-room-kit/example/android && chmod +x ./gradlew From 62451c179fed78e2fc5089066a79914788952354 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Sun, 24 Dec 2023 11:32:34 +0530 Subject: [PATCH 04/16] added dry run check --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5639dba4f..d2e9830d1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,8 +51,8 @@ jobs: - name: Prepack run: | - cd packages/react-native-hms/ && npm run prepack - cd ../react-native-room-kit/ && npm run prepack + cd packages/react-native-hms/ && npm publish --dry-run + cd ../react-native-room-kit/ && npm publish --dry-run - name: Make Gradlew Executable run: cd packages/react-native-room-kit/example/android && chmod +x ./gradlew From 663d4bdc7e51e511027d7689249c9089bac58694 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Sun, 24 Dec 2023 11:37:38 +0530 Subject: [PATCH 05/16] installing dependency before publish dry run --- .github/workflows/build.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d2e9830d1..d2e2ff70a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,8 +46,21 @@ jobs: distribution: zulu java-version: 11.x + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 16 + - name: Install dependencies - run: cd packages/react-native-hms/example/ && npm install && cd ../../react-native-room-kit/example/ && npm install + run: | + cd packages/react-native-hms/ + npm install + cd example/ + npm install + cd ../../react-native-room-kit/ + npm install + cd example/ + npm install - name: Prepack run: | From e30415e9b7951bd41f5fd30467f23f5c8c1d9bb4 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Sun, 24 Dec 2023 11:41:22 +0530 Subject: [PATCH 06/16] trunk fmt --- .github/workflows/build.yml | 2 +- .github/workflows/firstinteraction.yml | 4 ++-- .github/workflows/stale.yml | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d2e2ff70a..24dbad698 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -62,7 +62,7 @@ jobs: cd example/ npm install - - name: Prepack + - name: Publish Dry Run run: | cd packages/react-native-hms/ && npm publish --dry-run cd ../react-native-room-kit/ && npm publish --dry-run diff --git a/.github/workflows/firstinteraction.yml b/.github/workflows/firstinteraction.yml index 536e4a290..c502606f4 100644 --- a/.github/workflows/firstinteraction.yml +++ b/.github/workflows/firstinteraction.yml @@ -6,8 +6,8 @@ on: types: [opened] pull_request: branches: - - main - - develop + - main + - develop types: [opened] jobs: diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 155bab898..11a5130ec 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,8 +1,8 @@ -name: 'Close stale issues and PRs' +name: "Close stale issues and PRs" on: workflow_dispatch: {} schedule: - - cron: '30 1 * * *' + - cron: "30 1 * * *" jobs: stale: @@ -10,10 +10,10 @@ jobs: steps: - uses: actions/stale@v8 with: - stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.' - stale-pr-message: 'This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days.' - close-issue-message: 'This issue was closed because it has been stalled for 5 days with no activity.' - close-pr-message: 'This PR was closed because it has been stalled for 10 days with no activity.' + stale-issue-message: "This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days." + stale-pr-message: "This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days." + close-issue-message: "This issue was closed because it has been stalled for 5 days with no activity." + close-pr-message: "This PR was closed because it has been stalled for 10 days with no activity." days-before-issue-stale: 30 days-before-pr-stale: 45 days-before-issue-close: 5 From 76927663e10c365c1e1c8b3a7d7c66c5892fadeb Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Sun, 24 Dec 2023 11:44:30 +0530 Subject: [PATCH 07/16] updated trunk settings --- .github/pull_request_template.md | 7 ++++--- .trunk/trunk.yaml | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 7e85f3145..b1816482c 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,8 +1,8 @@ # Description -*Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.* +_Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots._ -*List which issues are fixed by this PR. You must list at least one issue.* +_List which issues are fixed by this PR. You must list at least one issue._ --- @@ -10,7 +10,7 @@ -* +- ### Pre-launch Checklist @@ -22,4 +22,5 @@ - [ ] All existing and new tests are passing. + [Documentation]: https://www.100ms.live/docs diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index e59c219cd..d5a366d8a 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -11,7 +11,7 @@ lint: - actionlint@1.6.26 - prettier@3.1.1 - swiftlint@0.54.0 - - checkov@3.1.40 + - checkov@3.1.42 - osv-scanner@1.5.0 - trivy@0.48.1 - trufflehog@3.63.5 From f4d34802e0e8affddbb33e3ba39af3adade91938 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Sun, 24 Dec 2023 12:01:01 +0530 Subject: [PATCH 08/16] added bundle size checker --- .github/workflows/build.yml | 22 ++++++++++++++++++++-- .github/workflows/release_apps.yml | 2 -- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 24dbad698..69be56641 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,8 +33,8 @@ jobs: build_apk: name: Build APK if: github.event.pull_request.draft == false - runs-on: ubuntu-latest - timeout-minutes: 30 + runs-on: macOS-latest + timeout-minutes: 60 steps: - name: Checkout repository @@ -74,3 +74,21 @@ jobs: run: | cd packages/react-native-room-kit/example/android ./gradlew assembleDebug --no-daemon + + - name: Check Core SDK Bundle Size + uses: shwetsolanki/react-native-bundle-size@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + ios-entry-file: packages/react-native-hms/src/index.ts + android-entry-file: packages/react-native-hms/src/index.ts + include-assets: 'true' + include-source-maps: 'true' + + - name: Check Room Kit Bundle Size + uses: shwetsolanki/react-native-bundle-size@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + ios-entry-file: packages/react-native-room-kit/src/index.ts + android-entry-file: packages/react-native-room-kit/src/index.ts + include-assets: 'true' + include-source-maps: 'true' diff --git a/.github/workflows/release_apps.yml b/.github/workflows/release_apps.yml index 542e545ee..f64ca93b7 100644 --- a/.github/workflows/release_apps.yml +++ b/.github/workflows/release_apps.yml @@ -25,8 +25,6 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 - with: - fetch-depth: 0 - name: Setup Java uses: actions/setup-java@v4 From 7f406d86d50c5aea131adbc6509c073ee5b1c41f Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Sun, 24 Dec 2023 12:17:42 +0530 Subject: [PATCH 09/16] added build ios app step --- .github/workflows/build.yml | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 69be56641..ecf45f802 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -70,25 +70,23 @@ jobs: - name: Make Gradlew Executable run: cd packages/react-native-room-kit/example/android && chmod +x ./gradlew - - name: Generate App APK + - name: Build Android App run: | cd packages/react-native-room-kit/example/android ./gradlew assembleDebug --no-daemon - - name: Check Core SDK Bundle Size - uses: shwetsolanki/react-native-bundle-size@v1 + - name: Build iOS App + uses: yukiarrr/ios-build-action@v1.11.1 with: - token: ${{ secrets.GITHUB_TOKEN }} - ios-entry-file: packages/react-native-hms/src/index.ts - android-entry-file: packages/react-native-hms/src/index.ts - include-assets: 'true' - include-source-maps: 'true' - - - name: Check Room Kit Bundle Size - uses: shwetsolanki/react-native-bundle-size@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - ios-entry-file: packages/react-native-room-kit/src/index.ts - android-entry-file: packages/react-native-room-kit/src/index.ts - include-assets: 'true' - include-source-maps: 'true' + project-path: packages/react-native-room-kit/example/ios/RNExample.xcodeproj + p12-base64: ${{ secrets.IOS_P12_BASE64 }} + certificate-password: ${{ secrets.IOS_CERTIFICATE_PASSWORD }} + mobileprovision-base64: | + ${{ secrets.ADHOC_MOBILEPROVISION_BASE64 }} + ${{ secrets.ADHOCEXTENSION_MOBILEPROVISION_BASE64 }} + code-signing-identity: iPhone Distribution + team-id: ${{ secrets.IOS_TEAM_ID }} + workspace-path: packages/react-native-room-kit/example/ios/RNExample.xcworkspace + scheme: RNExample + export-method: ad-hoc + export-options: packages/react-native-room-kit/example/ios/ExportOptions.plist From 72088fe035abc9d4e85639ff162e3b6761981cee Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Sun, 24 Dec 2023 12:34:14 +0530 Subject: [PATCH 10/16] added pod install step --- .github/workflows/build.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ecf45f802..a9104aaf9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,6 +51,12 @@ jobs: with: node-version: 16 + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.2 + bundler-cache: true + - name: Install dependencies run: | cd packages/react-native-hms/ @@ -62,6 +68,12 @@ jobs: cd example/ npm install + - name: Install Pods + run: | + sudo gem install cocoapods + cd ./packages/react-native-room-kit/example/ios + pod install + - name: Publish Dry Run run: | cd packages/react-native-hms/ && npm publish --dry-run From 585f6a39f4bf39fe7ba0b1798160bb6d2e1cd111 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Sun, 24 Dec 2023 13:30:42 +0530 Subject: [PATCH 11/16] renamed build step --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a9104aaf9..d7de85978 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,8 +30,8 @@ permissions: contents: read jobs: - build_apk: - name: Build APK + build: + name: Build App if: github.event.pull_request.draft == false runs-on: macOS-latest timeout-minutes: 60 From f1d01f0a80e97bf7d708b48ff4677dcdcd54080d Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Sun, 24 Dec 2023 18:55:54 +0530 Subject: [PATCH 12/16] broke build script into 2 jobs --- .github/workflows/build.yml | 59 +++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d7de85978..b7a561399 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,11 +30,11 @@ permissions: contents: read jobs: - build: - name: Build App + build_android: + name: Build Android App if: github.event.pull_request.draft == false - runs-on: macOS-latest - timeout-minutes: 60 + runs-on: ubuntu-latest + timeout-minutes: 30 steps: - name: Checkout repository @@ -51,12 +51,6 @@ jobs: with: node-version: 16 - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: 3.2 - bundler-cache: true - - name: Install dependencies run: | cd packages/react-native-hms/ @@ -68,12 +62,6 @@ jobs: cd example/ npm install - - name: Install Pods - run: | - sudo gem install cocoapods - cd ./packages/react-native-room-kit/example/ios - pod install - - name: Publish Dry Run run: | cd packages/react-native-hms/ && npm publish --dry-run @@ -87,6 +75,45 @@ jobs: cd packages/react-native-room-kit/example/android ./gradlew assembleDebug --no-daemon + build_ios: + name: Build iOS App + if: github.event.pull_request.draft == false + runs-on: macOS-latest + timeout-minutes: 45 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + distribution: zulu + java-version: 11.x + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 16 + + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.2 + bundler-cache: true + + - name: Install dependencies + run: | + cd packages/react-native-hms/example/ + npm install + cd ../../react-native-room-kit/example/ + npm install + + - name: Install Pods + run: | + sudo gem install cocoapods + cd ./packages/react-native-room-kit/example/ios + pod install + - name: Build iOS App uses: yukiarrr/ios-build-action@v1.11.1 with: From 14f2a2dd5daafd1a16f4ce5456adf8f3c39ab6d0 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Sun, 24 Dec 2023 19:27:35 +0530 Subject: [PATCH 13/16] added pods cache step --- .github/workflows/build.yml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b7a561399..c1dc65621 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -103,12 +103,26 @@ jobs: - name: Install dependencies run: | - cd packages/react-native-hms/example/ + cd packages/react-native-hms/ + npm install + cd example/ + npm install + cd ../../react-native-room-kit/ npm install - cd ../../react-native-room-kit/example/ + cd example/ npm install - - name: Install Pods + - name: Cache Pods + id: cache-pods + uses: actions/cache@v3 + with: + path: packages/react-native-room-kit/example/ios/Pods + key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} + restore-keys: | + ${{ runner.os }}-pods- + + - name: Install Pods if Cache Missed + if: steps.cache-pods.outputs.cache-hit != 'true' run: | sudo gem install cocoapods cd ./packages/react-native-room-kit/example/ios From a6eb686ec9ca4a8f1786fe769662d90bab874c03 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Mon, 25 Dec 2023 15:38:22 +0530 Subject: [PATCH 14/16] trunk formatted --- .trunk/trunk.yaml | 4 ++-- .../example/src/screens/MeetingScreen/Modals.tsx | 4 ++-- .../example/src/screens/MeetingScreen/index.tsx | 4 +++- packages/react-native-hms/src/classes/HMSPIPConfig.ts | 2 +- .../src/components/HMSHLSPlayer/HMSHLSPlayer.tsx | 5 +++-- .../react-native-hms/src/components/HMSHLSPlayer/hooks.ts | 3 +-- packages/react-native-hms/src/hooks/hmsviews.ts | 4 +++- packages/react-native-hms/src/stores/hms-store.ts | 2 +- packages/react-native-hms/src/stores/types.ts | 6 ++++-- 9 files changed, 20 insertions(+), 14 deletions(-) diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index d5a366d8a..8dd2c08e7 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -11,10 +11,10 @@ lint: - actionlint@1.6.26 - prettier@3.1.1 - swiftlint@0.54.0 - - checkov@3.1.42 + - checkov@3.1.43 - osv-scanner@1.5.0 - trivy@0.48.1 - - trufflehog@3.63.5 + - trufflehog@3.63.7 - oxipng@9.0.0 - yamllint@1.33.0 - ktlint@1.1.0 diff --git a/packages/react-native-hms/example/src/screens/MeetingScreen/Modals.tsx b/packages/react-native-hms/example/src/screens/MeetingScreen/Modals.tsx index 687968206..cdcb138e9 100644 --- a/packages/react-native-hms/example/src/screens/MeetingScreen/Modals.tsx +++ b/packages/react-native-hms/example/src/screens/MeetingScreen/Modals.tsx @@ -1049,8 +1049,8 @@ export const RtcStatsModal = () => { value?.width ?? 0 }` : key === 'qualityLimitationReasons' - ? value.reason - : value} + ? value.reason + : value} ); diff --git a/packages/react-native-hms/example/src/screens/MeetingScreen/index.tsx b/packages/react-native-hms/example/src/screens/MeetingScreen/index.tsx index 03041ed8c..1db25ca87 100644 --- a/packages/react-native-hms/example/src/screens/MeetingScreen/index.tsx +++ b/packages/react-native-hms/example/src/screens/MeetingScreen/index.tsx @@ -1053,7 +1053,9 @@ const DisplayView = (data: { // remove Session Store key update listener on cleanup sessionStoreListeners.current.forEach(listener => listener.remove()); - if (toastTimeoutId !== null) clearTimeout(toastTimeoutId); + if (toastTimeoutId !== null) { + clearTimeout(toastTimeoutId); + } }; } }, [hmsSessionStore]); diff --git a/packages/react-native-hms/src/classes/HMSPIPConfig.ts b/packages/react-native-hms/src/classes/HMSPIPConfig.ts index 876a8eb80..fdae41c01 100644 --- a/packages/react-native-hms/src/classes/HMSPIPConfig.ts +++ b/packages/react-native-hms/src/classes/HMSPIPConfig.ts @@ -4,4 +4,4 @@ export interface HMSPIPConfig { endButton?: boolean; audioButton?: boolean; videoButton?: boolean; -}; +} diff --git a/packages/react-native-hms/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx b/packages/react-native-hms/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx index 7e1a5df80..5c5abd435 100644 --- a/packages/react-native-hms/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx +++ b/packages/react-native-hms/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx @@ -200,9 +200,10 @@ const _HMSHLSPlayer: React.ForwardRefRenderFunction< ) { setHMSHLSPlayerPlaybackError(data.error); } else if ( - event === HMSHLSPlayerPlaybackEventTypes.ON_PLAYBACK_RESOLUTION_CHANGE_EVENT + event === + HMSHLSPlayerPlaybackEventTypes.ON_PLAYBACK_RESOLUTION_CHANGE_EVENT ) { - setHMSHLSPlayerResolution({...data}); + setHMSHLSPlayerResolution({ ...data }); const aspectRatio = data.width / data.height; diff --git a/packages/react-native-hms/src/components/HMSHLSPlayer/hooks.ts b/packages/react-native-hms/src/components/HMSHLSPlayer/hooks.ts index f3030fa3b..bfc6baebb 100644 --- a/packages/react-native-hms/src/components/HMSHLSPlayer/hooks.ts +++ b/packages/react-native-hms/src/components/HMSHLSPlayer/hooks.ts @@ -93,8 +93,7 @@ export const useHMSHLSPlayerCue = ( export const setHMSHLSPlayerPlaybackState = useHMSStore.getState().setPlaybackState; -export const setHMSHLSPlayerResolution = - useHMSStore.getState().setResolution; +export const setHMSHLSPlayerResolution = useHMSStore.getState().setResolution; export const setHMSHLSPlayerCue = useHMSStore.getState().setCue; diff --git a/packages/react-native-hms/src/hooks/hmsviews.ts b/packages/react-native-hms/src/hooks/hmsviews.ts index 2c28fa99d..bf7fb2de6 100644 --- a/packages/react-native-hms/src/hooks/hmsviews.ts +++ b/packages/react-native-hms/src/hooks/hmsviews.ts @@ -4,7 +4,9 @@ import { useHMSStore } from '../stores/hms-store'; // use latest state (with component rerender) export const useHmsViewsResolutionsState = (trackId?: TrackId) => { - return useHMSStore((state) => trackId ? state.hmsviewsResolutions[trackId] : undefined); + return useHMSStore((state) => + trackId ? state.hmsviewsResolutions[trackId] : undefined + ); }; // state setters diff --git a/packages/react-native-hms/src/stores/hms-store.ts b/packages/react-native-hms/src/stores/hms-store.ts index 09528e440..6de425e95 100644 --- a/packages/react-native-hms/src/stores/hms-store.ts +++ b/packages/react-native-hms/src/stores/hms-store.ts @@ -8,6 +8,6 @@ import type { HMSStore } from './types'; export const useHMSStore = create()( subscribeWithSelector((...a) => ({ ...createHMSHLSPlayerPlaybackSlice(...a), - ...createHMSViewsSlice(...a) + ...createHMSViewsSlice(...a), })) ); diff --git a/packages/react-native-hms/src/stores/types.ts b/packages/react-native-hms/src/stores/types.ts index ec589f4c0..10261d186 100644 --- a/packages/react-native-hms/src/stores/types.ts +++ b/packages/react-native-hms/src/stores/types.ts @@ -24,7 +24,7 @@ export type Resolution = { export interface HMSViewsSlice { hmsviewsResolutions: Record; setHmsviewsResolutions(trackId: TrackId, resolution: Resolution): void; -}; +} // HLS Player Playback Slice @@ -40,7 +40,9 @@ export type HMSHLSPlayerPlaybackError = | HMSHLSPlayerPlaybackFailureEventData['error'] | undefined; -export type HMSHLSPlayerResolution = HMSHLSPlayerPlaybackResolutionChangeEventData | undefined; +export type HMSHLSPlayerResolution = + | HMSHLSPlayerPlaybackResolutionChangeEventData + | undefined; export interface HMSHLSPlayerPlaybackSlice { cue: HMSHLSPlayerCue; From 42478e6669344ccd830ef7c5f52276a50f842395 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Tue, 26 Dec 2023 12:13:50 +0530 Subject: [PATCH 15/16] creating release flavor apk --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c1dc65621..d1dbe3866 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -73,7 +73,7 @@ jobs: - name: Build Android App run: | cd packages/react-native-room-kit/example/android - ./gradlew assembleDebug --no-daemon + ./gradlew assembleRelease --no-daemon build_ios: name: Build iOS App From 540c8ce01bb8b7014d6662a2be5ce6f63f907a91 Mon Sep 17 00:00:00 2001 From: Yogesh Singh Date: Tue, 26 Dec 2023 12:14:21 +0530 Subject: [PATCH 16/16] updated trunk settings --- .trunk/trunk.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 8dd2c08e7..257b2d011 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -32,9 +32,8 @@ runtimes: - java@13.0.11 - node@18.12.1 actions: - disabled: - - trunk-check-pre-push - - trunk-fmt-pre-commit enabled: - trunk-announce - trunk-upgrade-available + - trunk-check-pre-push + - trunk-fmt-pre-commit