Skip to content

Commit 0ed4160

Browse files
committed
Add Maestro Cloud CI for RNTester
1 parent fd10410 commit 0ed4160

1 file changed

Lines changed: 97 additions & 1 deletion

File tree

.github/workflows/test-all.yml

Lines changed: 97 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ jobs:
8888
debugger_shell:
8989
- 'packages/debugger-shell/**'
9090
- 'scripts/debugger-shell/**'
91-
9291
prebuild_apple_dependencies:
9392
needs: check_code_changes
9493
if: |
@@ -157,6 +156,55 @@ jobs:
157156
use-frameworks: ${{ matrix.frameworks }}
158157
flavor: ${{ matrix.flavor }}
159158

159+
test_maestro_cloud_ios:
160+
name: Maestro Cloud iOS RNTester
161+
needs: test_ios_rntester
162+
if: |
163+
needs.test_ios_rntester.result == 'success' &&
164+
(
165+
(github.event_name == 'push' && github.ref == 'refs/heads/main') ||
166+
(
167+
github.event_name == 'pull_request' &&
168+
github.event.pull_request.head.repo.full_name == github.repository &&
169+
github.actor != 'dependabot[bot]'
170+
)
171+
)
172+
runs-on: ubuntu-latest
173+
timeout-minutes: 75
174+
steps:
175+
- name: Checkout
176+
uses: actions/checkout@v6
177+
with:
178+
persist-credentials: false
179+
- name: Download RNTester app
180+
uses: actions/download-artifact@v7
181+
with:
182+
name: RNTesterApp-NewArch-Release
183+
path: /tmp/RNTesterBuild/RNTester.app
184+
- name: Validate Maestro Cloud inputs
185+
env:
186+
MAESTRO_CLOUD_API_KEY: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
187+
MAESTRO_CLOUD_PROJECT_ID: ${{ vars.MAESTRO_CLOUD_PROJECT_ID }}
188+
run: |
189+
test -n "$MAESTRO_CLOUD_API_KEY"
190+
test -n "$MAESTRO_CLOUD_PROJECT_ID"
191+
test -d /tmp/RNTesterBuild/RNTester.app
192+
test -z "$(find packages/rn-tester/.maestro -type l -print -quit)"
193+
- name: Run flows on Maestro Cloud
194+
uses: mobile-dev-inc/action-maestro-cloud@5759506b4ec7ee0a1ece4b7e6574bba2b282f241 # v3.0.1
195+
with:
196+
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
197+
project-id: ${{ vars.MAESTRO_CLOUD_PROJECT_ID }}
198+
app-file: /tmp/RNTesterBuild/RNTester.app
199+
workspace: packages/rn-tester/.maestro
200+
branch: ${{ github.head_ref || github.ref_name }}
201+
name: RNTester iOS - ${{ github.event.pull_request.title || github.event.head_commit.message }}
202+
exclude-tags: android-only
203+
env: |
204+
APP_ID=com.meta.RNTester.localDevelopment
205+
maestro-cli-version: 2.6.1
206+
timeout: 60
207+
160208
test_e2e_ios_rntester:
161209
needs: test_ios_rntester
162210
if: ${{ needs.test_ios_rntester.result == 'success' }}
@@ -286,6 +334,54 @@ jobs:
286334
release-type: ${{ needs.set_release_type.outputs.RELEASE_TYPE }}
287335
gradle-cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}
288336

337+
test_maestro_cloud_android:
338+
name: Maestro Cloud Android RNTester
339+
needs: build_android
340+
if: |
341+
needs.build_android.result == 'success' &&
342+
(
343+
(github.event_name == 'push' && github.ref == 'refs/heads/main') ||
344+
(
345+
github.event_name == 'pull_request' &&
346+
github.event.pull_request.head.repo.full_name == github.repository &&
347+
github.actor != 'dependabot[bot]'
348+
)
349+
)
350+
runs-on: ubuntu-latest
351+
timeout-minutes: 75
352+
steps:
353+
- name: Checkout
354+
uses: actions/checkout@v6
355+
with:
356+
persist-credentials: false
357+
- name: Download RNTester APK
358+
uses: actions/download-artifact@v7
359+
with:
360+
name: rntester-release
361+
path: /tmp/rntester-android
362+
- name: Validate Maestro Cloud inputs
363+
env:
364+
MAESTRO_CLOUD_API_KEY: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
365+
MAESTRO_CLOUD_PROJECT_ID: ${{ vars.MAESTRO_CLOUD_PROJECT_ID }}
366+
run: |
367+
test -n "$MAESTRO_CLOUD_API_KEY"
368+
test -n "$MAESTRO_CLOUD_PROJECT_ID"
369+
test -f /tmp/rntester-android/app-x86-release.apk
370+
test -z "$(find packages/rn-tester/.maestro -type l -print -quit)"
371+
- name: Run flows on Maestro Cloud
372+
uses: mobile-dev-inc/action-maestro-cloud@5759506b4ec7ee0a1ece4b7e6574bba2b282f241 # v3.0.1
373+
with:
374+
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
375+
project-id: ${{ vars.MAESTRO_CLOUD_PROJECT_ID }}
376+
app-file: /tmp/rntester-android/app-x86-release.apk
377+
workspace: packages/rn-tester/.maestro
378+
branch: ${{ github.head_ref || github.ref_name }}
379+
name: RNTester Android - ${{ github.event.pull_request.title || github.event.head_commit.message }}
380+
env: |
381+
APP_ID=com.facebook.react.uiapp
382+
maestro-cli-version: 2.6.1
383+
timeout: 60
384+
289385
test_e2e_android_rntester:
290386
needs: build_android
291387
if: ${{ needs.build_android.result == 'success' }}

0 commit comments

Comments
 (0)