feat: add support to take screenshot from a video stream [RN-75] #5532
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: React Native Dogfood Release | |
env: | |
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
GOOGLE_APPLICATION_CREDENTIALS: '/home/runner/rn-samples-google-services.json' | |
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} | |
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }} | |
APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }} | |
APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }} | |
APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }} | |
STREAM_SDK_TEST_APP: ${{ secrets.STREAM_SDK_TEST_APP }} | |
STREAM_SDK_TEST_ACCOUNT_EMAIL: ${{ secrets.STREAM_SDK_TEST_ACCOUNT_EMAIL }} | |
STREAM_SDK_TEST_ACCOUNT_PASSWORD: ${{ secrets.STREAM_SDK_TEST_ACCOUNT_PASSWORD }} | |
STREAM_SDK_TEST_ACCOUNT_OTP_SECRET: ${{ secrets.STREAM_SDK_TEST_ACCOUNT_OTP_SECRET }} | |
RN_DOGFOOD_ANDROID_KEYSTORE: '/home/runner/stream-video-calls-rn.keystore' | |
RN_DOGFOOD_ANDROID_KEYSTORE_PASSWORD: ${{ secrets.RN_DOGFOOD_ANDROID_KEYSTORE_PASSWORD }} | |
RN_DOGFOOD_ANDROID_KEYSTORE_ALIAS: ${{ secrets.RN_DOGFOOD_ANDROID_KEYSTORE_ALIAS }} | |
RN_DOGFOOD_ANDROID_DEPLOY_SERVICE_ACCOUNT: '/home/runner/service-account.json' | |
FASTLANE_SKIP_UPDATE_CHECK: 1 | |
REACT_NATIVE_DOGFOOD_APP_ENVIRONMENT: 'demo' | |
on: | |
push: | |
tags: | |
- '@stream-io/video-react-native-dogfood-*' | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
- reopened | |
paths: | |
- '.github/workflows/react-native-workflow.yml' | |
- 'sample-apps/react-native/dogfood/**' | |
- 'packages/client/**' | |
- 'packages/react-bindings/**' | |
- 'packages/react-native-sdk/**' | |
- 'packages/video-filters-react-native/**' | |
- '!**.md' | |
workflow_dispatch: | |
concurrency: | |
group: react-native-workflow-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
code_review: | |
name: Code Lint, Unit Test and dogfood versioning | |
timeout-minutes: 20 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/rn-bootstrap | |
timeout-minutes: 15 | |
env: | |
INSTALL_NODE: true | |
INSTALL_RN_DEPENDENCIES: true | |
- name: Lint fastlane | |
working-directory: sample-apps/react-native/dogfood | |
run: bundle exec fastlane rubocop | |
- name: Test RN SDK (Unit tests only) | |
run: yarn test:react-native:sdk | |
build_ios: | |
name: Build iOS | |
timeout-minutes: 60 | |
needs: code_review | |
runs-on: macos-15 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/rn-bootstrap | |
timeout-minutes: 20 | |
env: | |
INSTALL_NODE: true | |
INSTALL_PODS: true | |
INSTALL_RN_DEPENDENCIES: true | |
- name: Build | |
working-directory: sample-apps/react-native/dogfood | |
run: bundle exec fastlane build_ios | |
- name: Upload .ipa | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ipa | |
path: | | |
**/dogfood/dist/*.ipa | |
**/dogfood/dist/*.zip | |
deploy_ios: | |
name: Deploy iOS | |
needs: build_ios | |
timeout-minutes: 60 | |
if: ${{ github.ref == 'refs/heads/main' }} | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/rn-bootstrap | |
timeout-minutes: 15 | |
- name: Download .ipa | |
uses: actions/download-artifact@v4 | |
with: | |
name: ipa | |
- name: Deploy | |
working-directory: sample-apps/react-native/dogfood | |
run: bundle exec fastlane deploy_ios | |
build_android: | |
name: Build Android | |
timeout-minutes: 60 | |
needs: code_review | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/rn-bootstrap | |
timeout-minutes: 15 | |
env: | |
INSTALL_NODE: true | |
INSTALL_JAVA: true | |
INSTALL_RN_DEPENDENCIES: true | |
- name: Create Google Services JSON File | |
env: | |
DATA: ${{ secrets.GOOGLE_SERVICES_JSON_RN_SAMPLES_DEPLOYMENT }} | |
run: echo $DATA > ~/rn-samples-google-services.json | |
shell: bash | |
- name: Create Google Service Account for Play Store Deployment | |
env: | |
DATA: ${{ secrets.RN_DOGFOOD_ANDROID_DEPLOY_SERVICE_ACCOUNT_BASE64 }} | |
run: echo $DATA | base64 --decode | jq > ~/service-account.json | |
shell: bash | |
- name: Create Keystore Signing for Play Store Deployment | |
env: | |
DATA: ${{ secrets.RN_DOGFOOD_ANDROID_KEYSTORE_BASE64 }} | |
run: echo $DATA | base64 -d > ~/stream-video-calls-rn.keystore | |
shell: bash | |
- name: Build | |
working-directory: sample-apps/react-native/dogfood | |
run: bundle exec fastlane build_android_play_store | |
- name: Upload .apk | |
uses: actions/upload-artifact@v4 | |
with: | |
name: apk | |
path: '**/dist/*.apk' | |
- name: Upload .aab | |
uses: actions/upload-artifact@v4 | |
with: | |
name: aab | |
path: '**/dist/*.aab' | |
deploy_android: | |
name: Deploy Android | |
needs: build_android | |
timeout-minutes: 60 | |
if: ${{ github.ref == 'refs/heads/main' }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/rn-bootstrap | |
timeout-minutes: 15 | |
- name: Download .aab | |
uses: actions/download-artifact@v4 | |
with: | |
name: aab | |
- name: Create Google Service Account for Play Store Deployment | |
env: | |
DATA: ${{ secrets.RN_DOGFOOD_ANDROID_DEPLOY_SERVICE_ACCOUNT_BASE64 }} | |
run: echo $DATA | base64 --decode | jq > ~/service-account.json | |
shell: bash | |
- name: Deploy | |
working-directory: sample-apps/react-native/dogfood | |
run: bundle exec fastlane deploy_android_play_store |