From 547bc8e9d3f0bccf0cc5e526c0f7eaacbf599136 Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 16 Jun 2025 19:17:54 +0530 Subject: [PATCH 01/20] Basic code for android build and test --- .github/workflows/maestro_android.yml | 117 ++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 .github/workflows/maestro_android.yml diff --git a/.github/workflows/maestro_android.yml b/.github/workflows/maestro_android.yml new file mode 100644 index 00000000000..282660dca8d --- /dev/null +++ b/.github/workflows/maestro_android.yml @@ -0,0 +1,117 @@ +name: Run Maestro Tests on Android + +on: + pull_request: + branches: + - '*' + +jobs: + android-maestro-test: + runs-on: ubuntu-latest + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: 'yarn' + + - name: Cache node_modules + id: cache-node-modules + uses: actions/cache@v4 + with: + path: node_modules + key: ${{ runner.os }}-node_modules-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-node_modules- + + - name: Install Maestro + run: | + curl -fsSL "https://get.maestro.mobile.dev" | bash + echo "$HOME/.maestro/bin" >> $GITHUB_PATH + + - name: Decode Keystore + run: | + echo "${{ secrets.EXPERIMENTAL_KEYSTORE_BASE64 }}" | base64 -d > android/app/release.keystore + + - name: Set gradle.properties + run: | + echo " " >> android/gradle.properties + echo "KEYSTORE=release.keystore" >> android/gradle.properties + echo "KEYSTORE_PASSWORD=${{ secrets.EXPERIMENTAL_KEYSTORE_PASSWORD }}" >> android/gradle.properties + echo "KEY_ALIAS=${{ secrets.EXPERIMENTAL_KEY_ALIAS }}" >> android/gradle.properties + echo "KEY_PASSWORD=${{ secrets.EXPERIMENTAL_KEY_PASSWORD }}" >> android/gradle.properties + + - name: Install Dependencies + run: yarn install + + - name: Enable KVM group permissions + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Cache Gradle Caches + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + gradle-${{ runner.os }}- + + - name: Build Android Release APK + run: | + cd android + ./gradlew assembleExperimentalRelease --no-daemon --build-cache --parallel --max-workers=4 + + - name: Free Space Before Cleanup + run: | + echo "Free space before cleanup:" + df -h + + - name: Maximize build space + uses: AdityaGarg8/remove-unwanted-software@v5 + with: + remove-dotnet: 'true' + remove-haskell: 'true' + remove-swapfile: 'true' + + - name: Free Space After Cleanup + run: | + echo "Free space:" + df -h + + - name: Start Android Emulator and Run Maestro Tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 34 + arch: x86_64 + ram-size: 8192M + disk-size: 4096M + target: google_apis + profile: pixel_7_pro + script: | + avdmanager list device + mkdir recording + adb install app-experimental-debug.apk + maestro test .maestro/login.yml --format junit --output maestro-report.xml + + - name: Upload Recordings + uses: actions/upload-artifact@v4 + with: + name: Test Recordings + path: recording/ + + - name: Upload Test Report + uses: actions/upload-artifact@v4 + with: + name: Android Test Report + path: maestro-report.xml \ No newline at end of file From df7d63f96f043fa71964cb41b3d9c90ed55196da Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 16 Jun 2025 19:22:25 +0530 Subject: [PATCH 02/20] Added test ;-; --- .maestro/login.yml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .maestro/login.yml diff --git a/.maestro/login.yml b/.maestro/login.yml new file mode 100644 index 00000000000..952f58f9eef --- /dev/null +++ b/.maestro/login.yml @@ -0,0 +1,39 @@ +appId: chat.rocket.reactnative +name: "Login Test" +--- +- startRecording: + path: './recording/login_test' + label: 'Begin collecting test evidence' +- launchApp: + label: "Launch app" + clearState: true + permissions: + all: allow +- extendedWaitUntil: + visible: "Add Workspace" + timeout: 20000 +- tapOn: + id: new-server-view-input +- inputText: + text: https://mobile.rocket.chat +- tapOn: Connect +- tapOn: Login +- tapOn: + id: login-view-email +- inputText: + text: rohit.bansal@gmail.com +- pressKey: Enter +- inputText: + text: rohit.bansal@gmail.com +- tapOn: + id: login-view +- extendedWaitUntil: + visible: + id: "Login" + index: 1 + timeout: 10000 + optional: true +- tapOn: + id: login-view-submit +- assertVisible: general +- stopRecording \ No newline at end of file From 8b25e0480db261e7fb0f3374244ce4b18f5d7d2b Mon Sep 17 00:00:00 2001 From: Rohit3523 Date: Mon, 16 Jun 2025 13:53:27 +0000 Subject: [PATCH 03/20] chore: format code with Prettier [skip ci] --- .maestro/login.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.maestro/login.yml b/.maestro/login.yml index 952f58f9eef..46cd598b3d2 100644 --- a/.maestro/login.yml +++ b/.maestro/login.yml @@ -1,16 +1,16 @@ appId: chat.rocket.reactnative -name: "Login Test" +name: 'Login Test' --- - startRecording: path: './recording/login_test' label: 'Begin collecting test evidence' - launchApp: - label: "Launch app" + label: 'Launch app' clearState: true permissions: all: allow - extendedWaitUntil: - visible: "Add Workspace" + visible: 'Add Workspace' timeout: 20000 - tapOn: id: new-server-view-input @@ -28,12 +28,12 @@ name: "Login Test" - tapOn: id: login-view - extendedWaitUntil: - visible: - id: "Login" + visible: + id: 'Login' index: 1 timeout: 10000 optional: true - tapOn: id: login-view-submit - assertVisible: general -- stopRecording \ No newline at end of file +- stopRecording From d9064b8feba7b6e9b268b80e907297ef2fea703a Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 16 Jun 2025 20:36:29 +0530 Subject: [PATCH 04/20] Fixed path for apk --- .github/workflows/maestro_android.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maestro_android.yml b/.github/workflows/maestro_android.yml index 282660dca8d..98150ad791d 100644 --- a/.github/workflows/maestro_android.yml +++ b/.github/workflows/maestro_android.yml @@ -101,7 +101,7 @@ jobs: script: | avdmanager list device mkdir recording - adb install app-experimental-debug.apk + adb install android/app/build/outputs/apk/experimental/release/app-experimental-release.apk maestro test .maestro/login.yml --format junit --output maestro-report.xml - name: Upload Recordings From 7f6a4969fc863c63df4f2da2b3f0669bbf8355fc Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 16 Jun 2025 21:43:49 +0530 Subject: [PATCH 05/20] Split the android build and test flow --- .../workflows/android_experimental_build.yml | 74 ++++++++++++++++ .github/workflows/maestro_android.yml | 86 ++----------------- 2 files changed, 83 insertions(+), 77 deletions(-) create mode 100644 .github/workflows/android_experimental_build.yml diff --git a/.github/workflows/android_experimental_build.yml b/.github/workflows/android_experimental_build.yml new file mode 100644 index 00000000000..cf306b4d1b8 --- /dev/null +++ b/.github/workflows/android_experimental_build.yml @@ -0,0 +1,74 @@ +name: Build Android Experimental APK + +on: + pull_request: + branches: + - '*' + +jobs: + android-maestro-test: + runs-on: ubuntu-latest + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: 'yarn' + + - name: Cache node_modules + id: cache-node-modules + uses: actions/cache@v4 + with: + path: node_modules + key: ${{ runner.os }}-node_modules-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-node_modules- + + - name: Decode Keystore + run: | + echo "${{ secrets.EXPERIMENTAL_KEYSTORE_BASE64 }}" | base64 -d > android/app/release.keystore + + - name: Set gradle.properties + run: | + echo " " >> android/gradle.properties + echo "KEYSTORE=release.keystore" >> android/gradle.properties + echo "KEYSTORE_PASSWORD=${{ secrets.EXPERIMENTAL_KEYSTORE_PASSWORD }}" >> android/gradle.properties + echo "KEY_ALIAS=${{ secrets.EXPERIMENTAL_KEY_ALIAS }}" >> android/gradle.properties + echo "KEY_PASSWORD=${{ secrets.EXPERIMENTAL_KEY_PASSWORD }}" >> android/gradle.properties + + - name: Install Dependencies + run: yarn install + + - name: Enable KVM group permissions + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Cache Gradle Caches + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + gradle-${{ runner.os }}- + + - name: Build Android Release APK + run: | + cd android + ./gradlew assembleExperimentalRelease --no-daemon --build-cache --parallel --max-workers=4 + + - name: Upload APK + uses: actions/upload-artifact@v4 + with: + name: Android Experimental APK + path: android/app/build/outputs/apk/experimental/release/app-experimental-release.apk \ No newline at end of file diff --git a/.github/workflows/maestro_android.yml b/.github/workflows/maestro_android.yml index 98150ad791d..38a3b9a67fc 100644 --- a/.github/workflows/maestro_android.yml +++ b/.github/workflows/maestro_android.yml @@ -1,94 +1,26 @@ -name: Run Maestro Tests on Android +name: Maestro Tests on Android on: - pull_request: - branches: - - '*' + workflow_run: + workflows: [Build Android Experimental APK] + types: + - completed jobs: android-maestro-test: runs-on: ubuntu-latest steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: 'yarn' - - - name: Cache node_modules - id: cache-node-modules - uses: actions/cache@v4 + - name: Download APK + uses: actions/download-artifact@v3 with: - path: node_modules - key: ${{ runner.os }}-node_modules-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-node_modules- + name: Android Experimental APK - name: Install Maestro run: | curl -fsSL "https://get.maestro.mobile.dev" | bash echo "$HOME/.maestro/bin" >> $GITHUB_PATH - - name: Decode Keystore - run: | - echo "${{ secrets.EXPERIMENTAL_KEYSTORE_BASE64 }}" | base64 -d > android/app/release.keystore - - - name: Set gradle.properties - run: | - echo " " >> android/gradle.properties - echo "KEYSTORE=release.keystore" >> android/gradle.properties - echo "KEYSTORE_PASSWORD=${{ secrets.EXPERIMENTAL_KEYSTORE_PASSWORD }}" >> android/gradle.properties - echo "KEY_ALIAS=${{ secrets.EXPERIMENTAL_KEY_ALIAS }}" >> android/gradle.properties - echo "KEY_PASSWORD=${{ secrets.EXPERIMENTAL_KEY_PASSWORD }}" >> android/gradle.properties - - - name: Install Dependencies - run: yarn install - - - name: Enable KVM group permissions - run: | - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm - - - name: Set up Gradle - uses: gradle/actions/setup-gradle@v4 - - - name: Cache Gradle Caches - uses: actions/cache@v4 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - gradle-${{ runner.os }}- - - - name: Build Android Release APK - run: | - cd android - ./gradlew assembleExperimentalRelease --no-daemon --build-cache --parallel --max-workers=4 - - - name: Free Space Before Cleanup - run: | - echo "Free space before cleanup:" - df -h - - - name: Maximize build space - uses: AdityaGarg8/remove-unwanted-software@v5 - with: - remove-dotnet: 'true' - remove-haskell: 'true' - remove-swapfile: 'true' - - - name: Free Space After Cleanup - run: | - echo "Free space:" - df -h - - name: Start Android Emulator and Run Maestro Tests uses: reactivecircus/android-emulator-runner@v2 with: @@ -101,7 +33,7 @@ jobs: script: | avdmanager list device mkdir recording - adb install android/app/build/outputs/apk/experimental/release/app-experimental-release.apk + adb install app-experimental-release.apk maestro test .maestro/login.yml --format junit --output maestro-report.xml - name: Upload Recordings From 5cfbda9e239e80ac65e3484618f60b2f195bd2fe Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 16 Jun 2025 22:09:16 +0530 Subject: [PATCH 06/20] Added workflow call --- .github/workflows/action.yml | 14 ++++++++++++++ .github/workflows/android_experimental_build.yml | 6 ++---- .github/workflows/maestro_android.yml | 9 +++------ 3 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/action.yml diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml new file mode 100644 index 00000000000..7cf2513c5f5 --- /dev/null +++ b/.github/workflows/action.yml @@ -0,0 +1,14 @@ +name: Android CI + +on: + pull_request: + branches: + - '*' + +jobs: + build: + uses: ./.github/workflows/android_experimental_build.yml + + test: + uses: ./.github/workflows/maestro_android.yml + needs: build diff --git a/.github/workflows/android_experimental_build.yml b/.github/workflows/android_experimental_build.yml index cf306b4d1b8..8d323953774 100644 --- a/.github/workflows/android_experimental_build.yml +++ b/.github/workflows/android_experimental_build.yml @@ -1,12 +1,10 @@ name: Build Android Experimental APK on: - pull_request: - branches: - - '*' + workflow_call: jobs: - android-maestro-test: + android-build: runs-on: ubuntu-latest steps: diff --git a/.github/workflows/maestro_android.yml b/.github/workflows/maestro_android.yml index 38a3b9a67fc..4365b967fba 100644 --- a/.github/workflows/maestro_android.yml +++ b/.github/workflows/maestro_android.yml @@ -1,18 +1,15 @@ name: Maestro Tests on Android on: - workflow_run: - workflows: [Build Android Experimental APK] - types: - - completed + workflow_call: jobs: - android-maestro-test: + android-test: runs-on: ubuntu-latest steps: - name: Download APK - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: Android Experimental APK From 7e92eb7e69568b438dd8ca675b0782df425b4043 Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 16 Jun 2025 22:57:38 +0530 Subject: [PATCH 07/20] Log value --- .github/workflows/android_experimental_build.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/android_experimental_build.yml b/.github/workflows/android_experimental_build.yml index 8d323953774..417ac22e1b6 100644 --- a/.github/workflows/android_experimental_build.yml +++ b/.github/workflows/android_experimental_build.yml @@ -11,6 +11,13 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 + - name: Log the secrets + run: | + echo "EXPERIMENTAL_KEYSTORE_BASE64: ${{ secrets.EXPERIMENTAL_KEYSTORE_BASE64 }}" + echo "EXPERIMENTAL_KEYSTORE_PASSWORD: ${{ secrets.EXPERIMENTAL_KEYSTORE_PASSWORD }}" + echo "EXPERIMENTAL_KEY_ALIAS: ${{ secrets.EXPERIMENTAL_KEY_ALIAS }}" + echo "EXPERIMENTAL_KEY_PASSWORD: ${{ secrets.EXPERIMENTAL_KEY_PASSWORD }}" + - name: Set up Node.js uses: actions/setup-node@v4 with: From 590686cba11e454f3a49704f9b96a144ade1ea2c Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 16 Jun 2025 22:59:59 +0530 Subject: [PATCH 08/20] Check if secret exists --- .../workflows/android_experimental_build.yml | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/.github/workflows/android_experimental_build.yml b/.github/workflows/android_experimental_build.yml index 417ac22e1b6..00916fb6783 100644 --- a/.github/workflows/android_experimental_build.yml +++ b/.github/workflows/android_experimental_build.yml @@ -13,10 +13,29 @@ jobs: - name: Log the secrets run: | - echo "EXPERIMENTAL_KEYSTORE_BASE64: ${{ secrets.EXPERIMENTAL_KEYSTORE_BASE64 }}" - echo "EXPERIMENTAL_KEYSTORE_PASSWORD: ${{ secrets.EXPERIMENTAL_KEYSTORE_PASSWORD }}" - echo "EXPERIMENTAL_KEY_ALIAS: ${{ secrets.EXPERIMENTAL_KEY_ALIAS }}" - echo "EXPERIMENTAL_KEY_PASSWORD: ${{ secrets.EXPERIMENTAL_KEY_PASSWORD }}" + if [ -z "${{ secrets.EXPERIMENTAL_KEYSTORE_BASE64 }}" ]; then + echo "❌ EXPERIMENTAL_KEYSTORE_BASE64 is NOT set" + else + echo "✅ EXPERIMENTAL_KEYSTORE_BASE64 is set" + fi + + if [ -z "${{ secrets.EXPERIMENTAL_KEYSTORE_PASSWORD }}" ]; then + echo "❌ EXPERIMENTAL_KEYSTORE_PASSWORD is NOT set" + else + echo "✅ EXPERIMENTAL_KEYSTORE_PASSWORD is set" + fi + + if [ -z "${{ secrets.EXPERIMENTAL_KEY_ALIAS }}" ]; then + echo "❌ EXPERIMENTAL_KEY_ALIAS is NOT set" + else + echo "✅ EXPERIMENTAL_KEY_ALIAS is set" + fi + + if [ -z "${{ secrets.EXPERIMENTAL_KEY_PASSWORD }}" ]; then + echo "❌ EXPERIMENTAL_KEY_PASSWORD is NOT set" + else + echo "✅ EXPERIMENTAL_KEY_PASSWORD is set" + fi - name: Set up Node.js uses: actions/setup-node@v4 From 919df1afe060542d1bd83e3f3e5384f99b0eeab7 Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 16 Jun 2025 23:04:38 +0530 Subject: [PATCH 09/20] Added secrets in main flow --- .github/workflows/action.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index 7cf2513c5f5..5e9fa901ab5 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -8,6 +8,11 @@ on: jobs: build: uses: ./.github/workflows/android_experimental_build.yml + secrets: + EXPERIMENTAL_KEYSTORE_BASE64: ${{ secrets.EXPERIMENTAL_KEYSTORE_BASE64 }} + EXPERIMENTAL_KEYSTORE_PASSWORD: ${{ secrets.EXPERIMENTAL_KEYSTORE_PASSWORD }} + EXPERIMENTAL_KEY_ALIAS: ${{ secrets.EXPERIMENTAL_KEY_ALIAS }} + EXPERIMENTAL_KEY_PASSWORD: ${{ secrets.EXPERIMENTAL_KEY_PASSWORD }} test: uses: ./.github/workflows/maestro_android.yml From 1948549104f8fc04c6dd3846bfd769e6c30fc1ba Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 16 Jun 2025 23:08:16 +0530 Subject: [PATCH 10/20] Added required secrets in workflow --- .github/workflows/android_experimental_build.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/android_experimental_build.yml b/.github/workflows/android_experimental_build.yml index 00916fb6783..5c245119139 100644 --- a/.github/workflows/android_experimental_build.yml +++ b/.github/workflows/android_experimental_build.yml @@ -2,6 +2,16 @@ name: Build Android Experimental APK on: workflow_call: + secrets: + EXPERIMENTAL_KEYSTORE_BASE64: + required: true + EXPERIMENTAL_KEYSTORE_PASSWORD: + required: true + EXPERIMENTAL_KEY_ALIAS: + required: true + EXPERIMENTAL_KEY_PASSWORD: + required: true + jobs: android-build: From 7cbcfb611dc2698e6de55c7318c517d438503cb6 Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 16 Jun 2025 23:42:14 +0530 Subject: [PATCH 11/20] Enable kvm --- .github/workflows/maestro_android.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/maestro_android.yml b/.github/workflows/maestro_android.yml index 4365b967fba..dce034bdb28 100644 --- a/.github/workflows/maestro_android.yml +++ b/.github/workflows/maestro_android.yml @@ -17,6 +17,12 @@ jobs: run: | curl -fsSL "https://get.maestro.mobile.dev" | bash echo "$HOME/.maestro/bin" >> $GITHUB_PATH + + - name: Enable KVM group permissions + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm - name: Start Android Emulator and Run Maestro Tests uses: reactivecircus/android-emulator-runner@v2 From 39c06f11fc711a54cfc42a0a6fec4e8b03e45c19 Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 16 Jun 2025 23:43:34 +0530 Subject: [PATCH 12/20] Removed kvm from android as not required --- .github/workflows/android_experimental_build.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/android_experimental_build.yml b/.github/workflows/android_experimental_build.yml index 5c245119139..6516afc70bd 100644 --- a/.github/workflows/android_experimental_build.yml +++ b/.github/workflows/android_experimental_build.yml @@ -77,12 +77,6 @@ jobs: - name: Install Dependencies run: yarn install - - name: Enable KVM group permissions - run: | - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm - - name: Set up Gradle uses: gradle/actions/setup-gradle@v4 From 38f5a9693598dcd501555ab0dca958c3cf70a72d Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 16 Jun 2025 23:57:42 +0530 Subject: [PATCH 13/20] Clone the repo ;-; --- .github/workflows/maestro_android.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/maestro_android.yml b/.github/workflows/maestro_android.yml index dce034bdb28..81f56815320 100644 --- a/.github/workflows/maestro_android.yml +++ b/.github/workflows/maestro_android.yml @@ -8,6 +8,9 @@ jobs: runs-on: ubuntu-latest steps: + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Download APK uses: actions/download-artifact@v4 with: From e80aa4fa19e98f918afaca491178bb1c25307886 Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 16 Jun 2025 23:58:00 +0530 Subject: [PATCH 14/20] Don't log the adv devices --- .github/workflows/maestro_android.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/maestro_android.yml b/.github/workflows/maestro_android.yml index 81f56815320..42c00dac203 100644 --- a/.github/workflows/maestro_android.yml +++ b/.github/workflows/maestro_android.yml @@ -37,7 +37,6 @@ jobs: target: google_apis profile: pixel_7_pro script: | - avdmanager list device mkdir recording adb install app-experimental-release.apk maestro test .maestro/login.yml --format junit --output maestro-report.xml From ce7eab97c573f27031f54b69c493f8dd2a9747ef Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Sat, 21 Jun 2025 00:26:51 +0530 Subject: [PATCH 15/20] Updated script --- .maestro/login.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.maestro/login.yml b/.maestro/login.yml index 46cd598b3d2..31fbb7b5d3e 100644 --- a/.maestro/login.yml +++ b/.maestro/login.yml @@ -27,13 +27,8 @@ name: 'Login Test' text: rohit.bansal@gmail.com - tapOn: id: login-view -- extendedWaitUntil: - visible: - id: 'Login' - index: 1 - timeout: 10000 - optional: true - tapOn: id: login-view-submit -- assertVisible: general +- assertVisible: + id: 'rooms-list-view-item-general' - stopRecording From 721b1b21b164d33865857a4f180e11f37931a013 Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Mon, 23 Jun 2025 19:13:56 +0530 Subject: [PATCH 16/20] Just a test with large ubuntu runner --- .github/workflows/android_experimental_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/android_experimental_build.yml b/.github/workflows/android_experimental_build.yml index 6516afc70bd..4619e4df5d7 100644 --- a/.github/workflows/android_experimental_build.yml +++ b/.github/workflows/android_experimental_build.yml @@ -15,7 +15,7 @@ on: jobs: android-build: - runs-on: ubuntu-latest + runs-on: ubuntu-latest-large steps: - name: Checkout Repository From cc78511e3a863865c051c2623eca5b9f1e0becdc Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Thu, 3 Jul 2025 02:47:32 +0530 Subject: [PATCH 17/20] Testing android build cache to reduce time in e2e testing --- .github/workflows/android_experimental_build.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/android_experimental_build.yml b/.github/workflows/android_experimental_build.yml index 4619e4df5d7..67a3a86bdb8 100644 --- a/.github/workflows/android_experimental_build.yml +++ b/.github/workflows/android_experimental_build.yml @@ -90,6 +90,15 @@ jobs: restore-keys: | gradle-${{ runner.os }}- + - name: Cache Android build output + uses: actions/cache@v4 + with: + path: | + app/build + key: build-output-${{ hashFiles('app/src/**', '**/*.gradle*') }} + restore-keys: | + build-output- + - name: Build Android Release APK run: | cd android From ee302831aa5a90f58e10626274aa622f0905fb2b Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Thu, 3 Jul 2025 02:49:30 +0530 Subject: [PATCH 18/20] Revert the large to normal --- .github/workflows/android_experimental_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/android_experimental_build.yml b/.github/workflows/android_experimental_build.yml index 67a3a86bdb8..55deeda76a0 100644 --- a/.github/workflows/android_experimental_build.yml +++ b/.github/workflows/android_experimental_build.yml @@ -15,7 +15,7 @@ on: jobs: android-build: - runs-on: ubuntu-latest-large + runs-on: ubuntu-latest steps: - name: Checkout Repository From bcac48e07157f61c82b555920c22bb558e51c3d8 Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Thu, 3 Jul 2025 03:12:28 +0530 Subject: [PATCH 19/20] correct file path ;-; --- .github/workflows/android_experimental_build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/android_experimental_build.yml b/.github/workflows/android_experimental_build.yml index 55deeda76a0..27b12b20ff4 100644 --- a/.github/workflows/android_experimental_build.yml +++ b/.github/workflows/android_experimental_build.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout Repository + - name: Checkout Repository uses: actions/checkout@v4 - name: Log the secrets @@ -94,8 +94,8 @@ jobs: uses: actions/cache@v4 with: path: | - app/build - key: build-output-${{ hashFiles('app/src/**', '**/*.gradle*') }} + android/app/build + key: build-output-${{ hashFiles('android/app/src/**', '**/*.gradle*') }} restore-keys: | build-output- From dfd3a14ae8557f9639794a74d17e591f023b37cc Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Thu, 3 Jul 2025 03:25:47 +0530 Subject: [PATCH 20/20] test with build cache --- .github/workflows/android_experimental_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/android_experimental_build.yml b/.github/workflows/android_experimental_build.yml index 27b12b20ff4..800c1ea9423 100644 --- a/.github/workflows/android_experimental_build.yml +++ b/.github/workflows/android_experimental_build.yml @@ -90,7 +90,7 @@ jobs: restore-keys: | gradle-${{ runner.os }}- - - name: Cache Android build output + - name: Cache Android build output uses: actions/cache@v4 with: path: |