Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
c12abbc
chore: pin Maestro 2.5.1, drop Android warmup, widen iOS retry trigger
diegolmello May 7, 2026
2206dfa
chore: bump Android emulator headroom and add AVD snapshot caching
diegolmello May 7, 2026
81bcf11
fix: restore sidebar-view testID visibility for Maestro
diegolmello May 11, 2026
60d46bc
chore(maestro): batch profile edits into a single submit
diegolmello May 11, 2026
7f53351
ci(maestro): address CodeRabbit review on #7311
diegolmello May 12, 2026
b30ed7d
test(maestro): restructure shard 12 thread-50 scroll for reliability
diegolmello May 13, 2026
8ad3ce7
fix(maestro): revert shard 12 restructure, just bump scroll timeout
diegolmello May 13, 2026
f8c5d99
revert(maestro): drop inert timeout bump on shard 12 thread-50 test
diegolmello May 13, 2026
aeae76d
fix(maestro): scroll focused FormContainer inputs above keyboard
diegolmello May 13, 2026
3413d6c
test(maestro): make discussion back-tap robust on Android shard 10
diegolmello May 14, 2026
bbb70a5
fix(maestro): tap room-header by testID in create-team flow
diegolmello May 15, 2026
b737c02
ci: upload maestro junit reports and full test artifacts
diegolmello May 18, 2026
843e7f1
ci(maestro-ios): run on macos-26 with Xcode 26.2.0
diegolmello May 18, 2026
2e1fa19
ci(maestro-ios): pick highest-numbered iPhone Pro from sim catalog
diegolmello May 18, 2026
1e6ab36
fix(maestro): dismiss iOS 26 system Save Password prompt after login
diegolmello May 19, 2026
568c631
chore: trigger CI re-run for shard 9 fix
diegolmello May 19, 2026
5ae4a55
chore: re-trigger CI after Actions hiccup
diegolmello May 19, 2026
8336773
ci(maestro): drop nick-fields/retry wrapper, cap reruns at 2
diegolmello May 19, 2026
0a54fc3
fix(maestro): robust iOS 26 Save Password dismiss across change-passw…
diegolmello May 19, 2026
47881f9
fix(maestro): suppress iOS Save Password prompt at FormTextInput level
diegolmello May 19, 2026
04d3ba3
fix(maestro): also suppress textContentType/autoComplete under E2E
diegolmello May 20, 2026
b0c368c
ci(maestro): fix shard 1 Open dialog regex and raise tight timeouts
diegolmello May 20, 2026
3f2034a
ci(maestro): seed Android AVD cache once before the matrix
diegolmello May 20, 2026
79d5ccc
test(maestro): align search-room helper timeouts with 60s codebase pa…
diegolmello May 22, 2026
8da05c6
chore: pin Maestro 2.5.1, drop Android warmup, widen iOS retry trigger
diegolmello May 7, 2026
11e11b5
chore: bump Android emulator headroom and add AVD snapshot caching
diegolmello May 7, 2026
b41dd3e
fix: restore sidebar-view testID visibility for Maestro
diegolmello May 11, 2026
58705a1
chore(maestro): batch profile edits into a single submit
diegolmello May 11, 2026
72e8cfe
ci(maestro): address CodeRabbit review on #7311
diegolmello May 12, 2026
2b0a723
test(maestro): restructure shard 12 thread-50 scroll for reliability
diegolmello May 13, 2026
b2ac07a
fix(maestro): revert shard 12 restructure, just bump scroll timeout
diegolmello May 13, 2026
e9f61c1
revert(maestro): drop inert timeout bump on shard 12 thread-50 test
diegolmello May 13, 2026
32da8a5
fix(maestro): scroll focused FormContainer inputs above keyboard
diegolmello May 13, 2026
7aa6f41
test(maestro): make discussion back-tap robust on Android shard 10
diegolmello May 14, 2026
9a49289
fix(maestro): tap room-header by testID in create-team flow
diegolmello May 15, 2026
dfb515f
ci: upload maestro junit reports and full test artifacts
diegolmello May 18, 2026
9d5ca80
ci(maestro-ios): run on macos-26 with Xcode 26.2.0
diegolmello May 18, 2026
0d9d6e7
ci(maestro-ios): pick highest-numbered iPhone Pro from sim catalog
diegolmello May 18, 2026
e803d0e
fix(maestro): dismiss iOS 26 system Save Password prompt after login
diegolmello May 19, 2026
c352377
ci(maestro): drop nick-fields/retry wrapper, cap reruns at 2
diegolmello May 19, 2026
e1a5d72
fix(maestro): robust iOS 26 Save Password dismiss across change-passw…
diegolmello May 19, 2026
ccd68bd
fix(maestro): suppress iOS Save Password prompt at FormTextInput level
diegolmello May 19, 2026
c20f86d
fix(maestro): also suppress textContentType/autoComplete under E2E
diegolmello May 20, 2026
2cd5c7f
ci(maestro): fix shard 1 Open dialog regex and raise tight timeouts
diegolmello May 20, 2026
c27e71c
ci(maestro): seed Android AVD cache once before the matrix
diegolmello May 20, 2026
bc9d26f
test(maestro): align search-room helper timeouts with 60s codebase pa…
diegolmello May 22, 2026
e52a0c9
Merge branch 'chore/maestro-ci-bundle' of github.com:RocketChat/Rocke…
diegolmello May 28, 2026
82cef33
fix: jump to message fails when empty 2FA code is sent on DDP method …
diegolmello May 28, 2026
5710413
fix(room): raise jump-to-message scroll race timeout 5s→20s
diegolmello May 29, 2026
9e84caf
chore(maestro): hide keyboard before change-password field asserts (s…
diegolmello May 29, 2026
fbb5baf
fix: re-subscribe rooms stream after forced socket reopen
diegolmello May 29, 2026
29e4f8b
fix: keep live socket on deeplink login (prevent orphan WebSocket clo…
diegolmello Jun 2, 2026
9719e11
Merge remote-tracking branch 'origin/develop' into chore/maestro-ci-b…
diegolmello Jun 2, 2026
6bdf780
fix(a11y): expose quoted-reply text in the message accessibility label
diegolmello Jun 2, 2026
32c642d
Merge branch 'develop' into chore/maestro-ci-bundle
diegolmello Jun 2, 2026
026a3d3
perf(ci): overlap iOS sim boot with Maestro install; drop single-flow…
diegolmello Jun 2, 2026
a3c4788
fix(ci): cache Android SDK packages in seed job to stop download flake
diegolmello Jun 3, 2026
037b120
chore: sync deeplink orphan-socket fix with merged #7380
diegolmello Jun 3, 2026
96525f6
ci(maestro): drop free-disk-space step from Android shards
diegolmello Jun 3, 2026
71ef5b4
ci(maestro): restore-only AVD cache + retried SDK install on shards
diegolmello Jun 3, 2026
44bd8cc
Merge branch 'develop' into chore/maestro-ci-bundle
diegolmello Jun 3, 2026
11cfa17
test: scroll to Unstar in Room Actions action sheet
diegolmello Jun 3, 2026
8d9b14f
test: surface E2E server outages in Maestro job output
diegolmello Jun 3, 2026
414ff75
chore(ci): re-trigger Maestro shards
diegolmello Jun 8, 2026
545e455
perf(ci): drop idb-companion from iOS Maestro shards, make Maestro ca…
diegolmello Jun 8, 2026
372f333
chore(ci): re-trigger Maestro shards (warm Maestro cache)
diegolmello Jun 8, 2026
3d711b2
chore: dedupe Android SDK preinstall and share quote attachment text …
diegolmello Jun 9, 2026
4032c33
fix(ci): retry whole Maestro suite once on driver-startup failure
diegolmello Jun 9, 2026
bc07689
perf(ci): speed up iOS 'Wait for Simulator Ready'
diegolmello Jun 9, 2026
be23ff5
chore(ci): drop dead 'Get Booted Simulator UDID' step from iOS Maestr…
diegolmello Jun 10, 2026
365bf6d
Merge branch 'develop' into chore/maestro-ci-bundle
diegolmello Jun 10, 2026
19df200
chore(ci): harden Maestro cache topology, timeouts and shard coverage
diegolmello Jun 10, 2026
fe53dfe
chore(ci): gate E2E shard preflight behind e2e approval
diegolmello Jun 10, 2026
b805127
fix(ci): resolve timeout vs gtimeout for the Maestro run wrapper
diegolmello Jun 10, 2026
bb5eddf
ci(e2e): hoist Maestro install cache into the e2e build jobs
diegolmello Jun 11, 2026
fe2c307
Merge remote-tracking branch 'origin/develop' into chore/maestro-ci-b…
diegolmello Jun 11, 2026
269b8a7
fix: clear DDP 2FA code after the retry consumes it
diegolmello Jun 11, 2026
e5c531b
fix: stop the jump-to-message scroll loop when history stops loading
diegolmello Jun 11, 2026
0e20b4c
chore(ci): trim verbose workflow comments
diegolmello Jun 11, 2026
f831b74
chore: address review — drop stale comments, lower iOS Maestro step t…
diegolmello Jun 11, 2026
ba23e1a
fix(ci): harden Android Maestro shards against cold-boot flakes
diegolmello Jun 12, 2026
d0d3c12
revert: stop folding quoted-reply text into the message accessibility…
diegolmello Jun 12, 2026
1765545
chore(ci): drop the -v2 AVD cache key suffix
diegolmello Jun 12, 2026
d76bc27
ci(maestro): rebalance shards by measured duration; warm up iOS drive…
diegolmello Jun 12, 2026
1988a29
ci(maestro): remove iOS driver warmup step
diegolmello Jun 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/actions/preinstall-android-sdk/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Pre-install Android SDK packages
description: >-
Retried install of the Android emulator + api-34 system image; clears partial
downloads between attempts so a corrupt archive self-heals.

runs:
using: composite
steps:
- name: Install emulator + system image
shell: bash
run: |
set -u
SDK="${ANDROID_HOME:-${ANDROID_SDK_ROOT:-/usr/local/lib/android/sdk}}"
SDKMANAGER="$SDK/cmdline-tools/latest/bin/sdkmanager"
IMAGE="system-images;android-34;google_apis;x86_64"
yes | "$SDKMANAGER" --licenses >/dev/null 2>&1 || true
for attempt in 1 2 3; do
echo "sdkmanager install attempt $attempt"
if "$SDKMANAGER" --install "emulator" "$IMAGE" --channel=0; then
echo "SDK packages installed on attempt $attempt"
exit 0
fi
echo "Install failed (attempt $attempt); clearing partial downloads and retrying"
rm -rf "$SDK/emulator" "$SDK/system-images/android-34/google_apis/x86_64"
sleep 10
done
echo "sdkmanager failed to install emulator + system image after 3 attempts"
exit 1
44 changes: 44 additions & 0 deletions .github/scripts/assert-maestro-shards.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/usr/bin/env bash
set -euo pipefail

# Emits the shard list the PR matrices fan out over and asserts every flow's
# test-<N> tag falls inside it, so drift fails loud instead of a flow silently
# never running.
SHARD_COUNT=14
FLOWS_DIR=".maestro/tests"

declared=()
for n in $(seq 1 "$SHARD_COUNT"); do declared+=("$n"); done

# Match the same `- test-N` list-item shape run-maestro.sh greps
found="$(grep -rhoE "^[[:space:]]*-[[:space:]]*['\"]?test-[0-9]+" "$FLOWS_DIR" \
--include='*.yaml' --include='*.yml' \
| grep -oE '[0-9]+' | sort -n -u)"

missing=()
for n in "${declared[@]}"; do
printf '%s\n' "$found" | grep -qx "$n" || missing+=("$n")
done

extra=()
while IFS= read -r n; do
[ -z "$n" ] && continue
if [ "$n" -lt 1 ] || [ "$n" -gt "$SHARD_COUNT" ]; then
extra+=("$n")
fi
done <<< "$found"

if [ ${#missing[@]} -gt 0 ] || [ ${#extra[@]} -gt 0 ]; then
echo "::error title=Maestro shard drift::Flow test-<N> tags do not match the declared 1..${SHARD_COUNT} shard list."
[ ${#missing[@]} -gt 0 ] && echo " Shards with no flow tagged test-<N>: ${missing[*]}"
[ ${#extra[@]} -gt 0 ] && echo " Flows tagged outside 1..${SHARD_COUNT}: ${extra[*]}"
exit 1
fi

json="$(printf '%s,' "${declared[@]}")"
json="[${json%,}]"
echo "Maestro shard coverage OK: test-1..test-${SHARD_COUNT} all present, none out of range."
echo "shards=${json}"
if [ -n "${GITHUB_OUTPUT:-}" ]; then
echo "shards=${json}" >> "$GITHUB_OUTPUT"
fi
114 changes: 84 additions & 30 deletions .github/scripts/run-maestro.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,37 @@ PLATFORM="${1:-${PLATFORM:-android}}"
SHARD="${2:-${SHARD:-default}}"
FLOWS_DIR=".maestro/tests"
MAIN_REPORT="maestro-report.xml"
MAX_RERUN_ROUNDS="${MAX_RERUN_ROUNDS:-3}"
MAX_RERUN_ROUNDS="${MAX_RERUN_ROUNDS:-2}"
RERUN_REPORT_PREFIX="maestro-rerun"
export MAESTRO_DRIVER_STARTUP_TIMEOUT="${MAESTRO_DRIVER_STARTUP_TIMEOUT:-120000}"

# Linux has timeout, macOS has gtimeout (Homebrew coreutils)
TIMEOUT_BIN="$(command -v timeout || command -v gtimeout || true)"

# Bound each `maestro test` so a wedged CoreSimulator child can't hang the job;
# 124/137 = timed out, annotated as an environment failure.
run_maestro_test() {
local rc=0
if [ -n "$TIMEOUT_BIN" ]; then
"$TIMEOUT_BIN" -k 30s 35m maestro test "$@" || rc=$?
else
maestro test "$@" || rc=$?
fi
if [ "$rc" -eq 124 ] || [ "$rc" -eq 137 ]; then
echo "::error title=Maestro run timed out::A 'maestro test' invocation exceeded 35m and was terminated (likely a wedged CoreSimulator). This is an environment failure, not an app or test regression."
fi
return 0
}

# The deeplink-login flow logs a live session token; scrub it before the logs
# upload as a public artifact. perl -i works on both Linux and macOS.
redact_uploaded_logs() {
local logs_dir="$HOME/.maestro/tests"
[ -d "$logs_dir" ] || return 0
find "$logs_dir" -type f -print0 \
| xargs -0 perl -pi -e 's/&token=[A-Za-z0-9_-]+/&token=***REDACTED***/g' 2>/dev/null || true
}

if [ "$PLATFORM" = "android" ]; then
APP_ID="chat.rocket.android"
else
Expand All @@ -32,8 +59,24 @@ else
fi
fi

# Probe the E2E server up front so an outage surfaces as one clear annotation
# instead of opaque flow failures. data.js is the source of the server URL.
E2E_SERVER="$(sed -n "s/^[[:space:]]*server:[[:space:]]*['\"]\([^'\"]*\)['\"].*/\1/p" .maestro/scripts/data.js | head -1)"
if [ -z "$E2E_SERVER" ]; then
echo "::error title=E2E server URL not found::Could not scrape 'server' from .maestro/scripts/data.js — its format may have changed. This is a CI config failure, not an app or test regression."
exit 3
fi
echo "Preflight: checking E2E server ${E2E_SERVER} ..."
PREFLIGHT_CODE="$(curl -s -o /dev/null -w '%{http_code}' --max-time 25 --retry 3 --retry-all-errors --retry-delay 5 "${E2E_SERVER}/api/info" || true)"
if [ "$PREFLIGHT_CODE" != "200" ]; then
echo "::error title=E2E server unreachable::${E2E_SERVER}/api/info returned HTTP ${PREFLIGHT_CODE:-000} — the test server is likely down. This is an environment failure, not an app or test regression."
exit 3
fi
echo "Preflight OK: ${E2E_SERVER}/api/info -> 200"

MAPFILE="$(mktemp)"
trap 'rm -f "$MAPFILE"' EXIT
# Redact on every exit path, before the always() upload reads the logs
trap 'rm -f "$MAPFILE"; redact_uploaded_logs' EXIT

while IFS= read -r -d '' file; do
if grep -qE "^[[:space:]]*-[[:space:]]*['\"]?test-${SHARD}['\"]?([[:space:]]*$|[[:space:]]*,|[[:space:]]*\\])" "$file"; then
Expand Down Expand Up @@ -69,33 +112,36 @@ done < "$MAPFILE"
echo "Main run will execute:"
printf ' %s\n' "${FLOW_FILES[@]}"

if [ "$PLATFORM" = "android" ]; then
adb shell settings put system show_touches 1 || true
adb install -r "app-release.apk" || true
adb shell monkey -p "$APP_ID" -c android.intent.category.LAUNCHER 1 || true
sleep 6
adb shell am force-stop "$APP_ID" || true

maestro test "${FLOW_FILES[@]}" \
-e APP_ID="$APP_ID" \
--exclude-tags=util \
--include-tags="test-${SHARD}" \
--exclude-tags=ios-only \
--format junit \
--output "$MAIN_REPORT" || true
run_main_suite() {
rm -f "$MAIN_REPORT"
if [ "$PLATFORM" = "android" ]; then
adb shell settings put system show_touches 1 || true
adb install -r "app-release.apk" || true

else
maestro test "${FLOW_FILES[@]}" \
-e APP_ID="$APP_ID" \
--exclude-tags=util \
--include-tags="test-${SHARD}" \
--exclude-tags=android-only \
--format junit \
--output "$MAIN_REPORT" || true
fi
run_maestro_test "${FLOW_FILES[@]}" \
-e APP_ID="$APP_ID" \
--exclude-tags=util \
--include-tags="test-${SHARD}" \
--exclude-tags=ios-only \
--format junit \
--output "$MAIN_REPORT"
else
run_maestro_test "${FLOW_FILES[@]}" \
-e APP_ID="$APP_ID" \
--exclude-tags=util \
--include-tags="test-${SHARD}" \
--exclude-tags=android-only \
--format junit \
--output "$MAIN_REPORT"
fi
}

run_main_suite

# No JUnit output = startup failure; go red for a human re-run instead of
# auto-retrying, which would hide real startup breakage.
if [ ! -f "$MAIN_REPORT" ]; then
echo "Main report not found"
echo "::error title=Maestro session produced no report::The Maestro run produced no JUnit output (session/driver-startup failure or a timeout — see the annotation above). Re-run the failed job if this looks transient."
exit 1
fi

Expand Down Expand Up @@ -147,21 +193,21 @@ while [ ${#CURRENT_FAILS[@]} -gt 0 ] && [ "$ROUND" -le "$MAX_RERUN_ROUNDS" ]; do
RPT="${RERUN_REPORT_PREFIX}-round-${ROUND}.xml"

if [ "$PLATFORM" = "android" ]; then
maestro test "${CURRENT_FAILS[@]}" \
run_maestro_test "${CURRENT_FAILS[@]}" \
-e APP_ID="$APP_ID" \
--exclude-tags=util \
--include-tags="test-${SHARD}" \
--exclude-tags=ios-only \
--format junit \
--output "$RPT" || true
--output "$RPT"
else
maestro test "${CURRENT_FAILS[@]}" \
run_maestro_test "${CURRENT_FAILS[@]}" \
-e APP_ID="$APP_ID" \
--exclude-tags=util \
--include-tags="test-${SHARD}" \
--exclude-tags=android-only \
--format junit \
--output "$RPT" || true
--output "$RPT"
fi

if [ ! -f "$RPT" ]; then
Expand Down Expand Up @@ -209,4 +255,12 @@ done

echo "Retry strategy finished with remaining failures:"
printf '%s\n' "${CURRENT_FAILS[@]}"

# The server can also blip after preflight; scan the local logs and annotate so
# an environment failure doesn't read like an app bug.
SERVER_ERR="$(grep -rhoE "Non-retryable error [0-9]{3}|Connection refused|Failed to connect|UnknownHostException|ConnectException|Read timed out" "$HOME/.maestro/tests/" 2>/dev/null | sort -u | head -5 | paste -sd '; ' - || true)"
if [ -n "$SERVER_ERR" ]; then
echo "::error title=E2E server error during run::A test-setup REST call to ${E2E_SERVER:-the test server} failed mid-run (${SERVER_ERR}). The shard failure is likely a server/environment flake, not an app or test regression."
fi

exit 1
68 changes: 68 additions & 0 deletions .github/workflows/build-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,71 @@ jobs:
secrets: inherit
with:
trigger: develop

# Single writer of the AVD + SDK caches: PR-written caches aren't visible to
# other PRs, so develop seeds them and the shards restore read-only.
seed-android-avd:
name: Seed Android AVD Cache
if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }}
runs-on: ubuntu-latest
env:
ANDROID_AVD_HOME: /home/runner/.android/avd
steps:
- name: Checkout Repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

- name: Setup Java
uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4.8.0
with:
distribution: temurin
java-version: 17

- name: Cache Android AVD
id: avd-cache
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-${{ runner.os }}-api34

# The emulator + system image live outside ~/.android/avd — cache them
# separately so shards don't each re-download ~1 GB.
- name: Cache Android SDK packages (emulator + system image)
id: sdk-cache
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: |
/usr/local/lib/android/sdk/emulator
/usr/local/lib/android/sdk/system-images/android-34/google_apis/x86_64
key: android-sdk-emu-${{ runner.os }}-api34

# Retried install so a corrupt partial download self-heals
- name: Pre-install Android SDK packages (cache miss only)
if: steps.sdk-cache.outputs.cache-hit != 'true'
uses: ./.github/actions/preinstall-android-sdk

- name: Enable KVM group permissions
if: steps.avd-cache.outputs.cache-hit != 'true'
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: Generate AVD snapshot (cache miss only)
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # v2.37.0
timeout-minutes: 45
with:
api-level: 34
disk-size: 4096M
arch: x86_64
target: google_apis
profile: pixel_7_pro
cores: 4
ram-size: 6144M
force-avd-creation: true
disable-animations: true
emulator-boot-timeout: 900
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none -accel on
script: echo "AVD snapshot generated for cache"
24 changes: 20 additions & 4 deletions .github/workflows/build-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,15 +52,31 @@ jobs:
needs: [e2e-hold]
secrets: inherit

# Validates flow tags and emits the shard list both matrices fan out over.
e2e-shards:
name: E2E Shard Preflight
if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }}
needs: [e2e-hold]
runs-on: ubuntu-latest
outputs:
shards: ${{ steps.shards.outputs.shards }}
steps:
- name: Checkout Repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

- name: Assert Maestro shard coverage
id: shards
run: bash .github/scripts/assert-maestro-shards.sh

e2e-run-android:
name: E2E Run Android
if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }}
uses: ./.github/workflows/maestro-android.yml
needs: [e2e-build-android]
needs: [e2e-build-android, e2e-shards]
secrets: inherit
strategy:
matrix:
shard: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
shard: ${{ fromJSON(needs.e2e-shards.outputs.shards) }}
fail-fast: false
with:
shard: ${{ matrix.shard }}
Expand All @@ -76,11 +92,11 @@ jobs:
name: E2E Run iOS
if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }}
uses: ./.github/workflows/maestro-ios.yml
needs: [e2e-build-ios]
needs: [e2e-build-ios, e2e-shards]
secrets: inherit
strategy:
matrix:
shard: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
shard: ${{ fromJSON(needs.e2e-shards.outputs.shards) }}
fail-fast: false
with:
shard: ${{ matrix.shard }}
Loading
Loading