Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
464f7d5
feat: add rock app
Juozas-Petkelis May 13, 2026
b9e7c26
feat: rename rockappreact to brownfieldlib
Juozas-Petkelis May 13, 2026
71da5ae
feat: update rock template to RN 85
Juozas-Petkelis May 14, 2026
40b5fea
feat: add rock app to prepare framework script
Juozas-Petkelis May 15, 2026
eb6681d
feat: prepare frameworks for rock app
Juozas-Petkelis May 15, 2026
d295729
feat: extract shared UI for vanilla and rock app
Juozas-Petkelis May 18, 2026
ada0c37
feat: added rock actions
Juozas-Petkelis May 19, 2026
3dba00a
feat: added rock cli commands to readme
Juozas-Petkelis May 19, 2026
160d693
feat: home screen adjustments
Juozas-Petkelis May 19, 2026
6af1b1e
fix: revert generated brownfield navigation files
Juozas-Petkelis Jun 4, 2026
753584c
fix: remove embed rock frameworks workaround
Juozas-Petkelis Jun 4, 2026
c6f2773
fix: add separate scheme for Vanilla and Rock
Juozas-Petkelis Jun 9, 2026
dc63159
fix: adjust appleApp project.pbxproj for rock
Juozas-Petkelis Jun 9, 2026
25f72b1
feat: add RockApp as hostAppName to ContentView pragma
Juozas-Petkelis Jun 9, 2026
d250cfb
chore: update dependencies in rock example
Juozas-Petkelis Sep 3, 2026
efeb55c
chore: update dependencies in shared, podfile update
Juozas-Petkelis Sep 4, 2026
6b00210
feat: update dependencies, align rock and rn apps
Juozas-Petkelis Sep 21, 2026
c582319
feat: refactor generated navigation code from app to shared example
Juozas-Petkelis Oct 14, 2026
277d717
feat: add codegen navigation ci step, minor rock version bump
Juozas-Petkelis Nov 2, 2026
3f0f707
fix: drop extra blank line from generated navigation index.ts
Juozas-Petkelis Nov 2, 2026
9af7c1c
feat: add detox support for rock app, add readme for rock
Juozas-Petkelis Nov 2, 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
5 changes: 5 additions & 0 deletions .changeset/navigation-codegen-blank-line.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@callstack/brownfield-cli': patch
---

The navigation codegen no longer adds an extra blank line after the imports in the generated `index.ts`, which made the file fail Prettier.
2 changes: 1 addition & 1 deletion .github/actions/androidapp-road-test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ description: Package the given RN app as AAR, publish to Maven Local, build the

inputs:
flavor:
description: 'AndroidApp flavor to build (expo<version> or vanilla)'
description: 'AndroidApp flavor to build (expo<version>, vanilla or rock)'
required: true

rn-project-path:
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/appleapp-road-test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ description: Package the given RN app as XCFramework, build the corresponding Ap

inputs:
variant:
description: 'AppleApp yarn command variant to run (vanilla or expo<version>)'
description: 'AppleApp yarn command variant to run (vanilla, expo<version> or rock)'
required: true

rn-project-path:
Expand Down
61 changes: 61 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ jobs:
outputs:
packages: ${{ steps.filter.outputs.packages }}
rnapp: ${{ steps.filter.outputs.rnapp }}
rockapp: ${{ steps.filter.outputs.rockapp }}
expo58: ${{ steps.filter.outputs.expo58 }}
expo57: ${{ steps.filter.outputs.expo57 }}
androidapp: ${{ steps.filter.outputs.androidapp }}
Expand All @@ -42,6 +43,11 @@ jobs:
- 'packages/**'
rnapp:
- 'apps/RNApp/**'
- 'apps/brownfield-example-shared/**'
- 'apps/brownfield-example-shared-tests/**'
rockapp:
- 'apps/RockApp/**'
- 'apps/brownfield-example-shared/**'
- 'apps/brownfield-example-shared-tests/**'
expo58:
- 'apps/ExpoApp58/**'
Expand Down Expand Up @@ -98,6 +104,9 @@ jobs:
- name: Build packages
run: yarn build

- name: Generate Brownfield Navigation bindings
run: yarn workspace @callstack/brownfield-example-shared codegen:navigation

- name: Lint files
run: yarn lint

Expand Down Expand Up @@ -292,6 +301,33 @@ jobs:
e2e-apk-artifact-name: androidapp-expo57-e2e-apks
e2e-artifact-name: detox-androidapp-expo57

android-androidapp-rock:
name: Android road test (RockApp & AndroidApp - Rock)
runs-on: ubuntu-latest
timeout-minutes: 120
needs: [filter, build-lint]
if: |
always() &&
(
needs.filter.outputs.rockapp == 'true' ||
needs.filter.outputs.androidapp == 'true' ||
needs.filter.outputs.packages == 'true' ||
needs.filter.outputs.gradle-plugins == 'true' ||
needs.filter.outputs.ci == 'true'
) &&
(needs.build-lint.result == 'success' || needs.build-lint.result == 'skipped')

steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6

- name: Run RockApp -> AndroidApp road test (Rock)
uses: ./.github/actions/androidapp-road-test
with:
flavor: rock
rn-project-path: apps/RockApp
rn-project-maven-path: com/callstack/rnbrownfield/demo/rockapp/brownfieldlib

android-androidapp-vanilla:
name: Android road test & E2E (AndroidApp - Vanilla)
runs-on: ubuntu-latest
Expand Down Expand Up @@ -382,3 +418,28 @@ jobs:
rn-project-path: apps/ExpoApp${{ matrix.version }}
run-e2e: ${{ matrix.run-e2e }}
e2e-artifact-name: detox-appleapp-expo${{ matrix.version }}

ios-appleapp-rock:
name: iOS road test (RockApp & AppleApp - Rock)
runs-on: macos-26
timeout-minutes: 60
needs: [filter, build-lint]
if: |
always() &&
(
needs.filter.outputs.rockapp == 'true' ||
needs.filter.outputs.appleapp == 'true' ||
needs.filter.outputs.packages == 'true' ||
needs.filter.outputs.ci == 'true'
) &&
(needs.build-lint.result == 'success' || needs.build-lint.result == 'skipped')

steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6

- name: Run RockApp -> AppleApp road test (Rock)
uses: ./.github/actions/appleapp-road-test
with:
variant: rock
rn-project-path: apps/RockApp
21 changes: 18 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ These live in a workspace, not in the root `package.json`. Run them with `yarn w
`apps/AndroidApp` (`@callstack/brownfield-example-android-app`), one Gradle flavor per consumed RN app:

- `build:example:android-consumer:vanilla` - consumes `apps/RNApp` (`assembleVanillaRelease`)
- `build:example:android-consumer:rock` - consumes `apps/RockApp` (`assembleRockRelease`)
- `build:example:android-consumer:expo58` - consumes `apps/ExpoApp58` (`assembleExpo58Release`)
- `build:example:android-consumer:expo57` - consumes `apps/ExpoApp57` (`assembleExpo57Release`)
- `build:example:android-consumer:expo` - alias for `build:example:android-consumer:expo57`
Expand All @@ -194,6 +195,7 @@ These live in a workspace, not in the root `package.json`. Run them with `yarn w
`apps/AppleApp` (`@callstack/brownfield-example-ios-app`), each copies the XCFrameworks with `prepareXCFrameworks.js` and runs `xcodebuild`:

- `build:example:ios-consumer:vanilla` - consumes `RNApp`, scheme **Brownfield Apple App Vanilla** (`Release Vanilla`)
- `build:example:ios-consumer:rock` - consumes `RockApp`, scheme **Brownfield Apple App Rock** (`Release Rock`)
- `build:example:ios-consumer:expo58` - consumes `ExpoApp58`, scheme **Brownfield Apple App Expo 58** (`Release`)
- `build:example:ios-consumer:expo57` - consumes `ExpoApp57`, scheme **Brownfield Apple App Expo 57** (`Release`)
- `build:example:ios-consumer:expo` - alias for `build:example:ios-consumer:expo57`
Expand Down Expand Up @@ -226,16 +228,19 @@ There are 2 brownfield host apps.
- `build:example:android-consumer:expo58` - consumes Expo 58
- `build:example:android-consumer:expo57` (or `expo`) - consumes Expo 57
- `build:example:android-consumer:vanilla` - consumes the vanilla `RNApp`
- `build:example:android-consumer:rock` - consumes `RockApp`
- `apps/AppleApp` - for Apple (one Xcode target per consumed RN app, each with its own shared scheme)
- `build:example:ios-consumer:expo58` — target `Brownfield Apple App (ExpoApp58)`, scheme **Brownfield Apple App Expo 58**
- `build:example:ios-consumer:expo57` (or `expo`) — target `Brownfield Apple App (ExpoApp57)`, scheme **Brownfield Apple App Expo 57**
- `build:example:ios-consumer:vanilla` — target `Brownfield Apple App (RNApp)`, scheme **Brownfield Apple App Vanilla**
- `build:example:ios-consumer:rock` — target `Brownfield Apple App (RNApp)`, scheme **Brownfield Apple App Rock**

For iOS, these scripts validate the legacy direct-XCFramework integration path. Each script uses the previously packaged artifacts from the respective directory (`apps/RNApp`, `apps/ExpoApp58`, or `apps/ExpoApp57`), invokes `prepareXCFrameworks.js` to copy XCFrameworks into `apps/AppleApp/package`, then runs `xcodebuild` against the matching scheme. The Xcode project reads fixed paths under `package/` (for example `package/BrownfieldLib.xcframework`).
For iOS, these scripts validate the legacy direct-XCFramework integration path. Each script uses the previously packaged artifacts from the respective directory (`apps/RNApp`, `apps/RockApp`, `apps/ExpoApp58`, or `apps/ExpoApp57`), invokes `prepareXCFrameworks.js` to copy XCFrameworks into `apps/AppleApp/package`, then runs `xcodebuild` against the matching scheme. The Xcode project reads fixed paths under `package/` (for example `package/BrownfieldLib.xcframework`).

| Yarn script | RN app | Xcode target | Scheme | Configuration |
| ------------------------------------ | ----------- | ---------------------------------- | ---------------------------- | ----------------- |
| `build:example:ios-consumer:vanilla` | `RNApp` | `Brownfield Apple App (RNApp)` | Brownfield Apple App Vanilla | `Release Vanilla` |
| `build:example:ios-consumer:rock` | `RockApp` | `Brownfield Apple App (RNApp)` | Brownfield Apple App Rock | `Release Rock` |
| `build:example:ios-consumer:expo58` | `ExpoApp58` | `Brownfield Apple App (ExpoApp58)` | Brownfield Apple App Expo 58 | `Release` |
| `build:example:ios-consumer:expo57` | `ExpoApp57` | `Brownfield Apple App (ExpoApp57)` | Brownfield Apple App Expo 57 | `Release` |

Expand All @@ -248,15 +253,18 @@ The local Swift Package Manager flow is separate from `prepareXCFrameworks.js`.

1. Package the producer app with `--add-spm-package`, for example:
- `cd apps/RNApp && yarn exec brownfield package:ios --scheme BrownfieldLib --configuration Release --add-spm-package`
- `cd apps/RockApp && yarn exec brownfield package:ios --scheme BrownfieldLib --configuration Release --add-spm-package`
- `cd apps/ExpoApp58 && yarn exec brownfield package:ios --scheme BrownfieldLib --configuration Release --add-spm-package`
- `cd apps/ExpoApp57 && yarn exec brownfield package:ios --scheme BrownfieldLib --configuration Release --add-spm-package`
2. Open `apps/AppleApp/Brownfield Apple App.xcodeproj`.
3. Select the host scheme you want to validate:
- `Brownfield Apple App Vanilla`
- `Brownfield Apple App Rock`
- `Brownfield Apple App Expo 58`
- `Brownfield Apple App Expo 57`
4. In Xcode, go to `Package Dependencies`, click `+`, choose `Add Local...`, and select the generated package folder:
- `apps/RNApp/ios/.brownfield/package/build`
- `apps/RockApp/ios/.brownfield/package/build`
- `apps/ExpoApp58/ios/.brownfield/package/build`
- `apps/ExpoApp57/ios/.brownfield/package/build`
5. Add the `BrownfieldLib` product to the matching AppleApp target.
Expand All @@ -279,6 +287,7 @@ Per example app (run from the repo root):
| Command | App |
| --------------------------------------------------------------- | --------------------------------- |
| `yarn workspace @callstack/brownfield-example-rn-app test` | Plain React Native (`apps/RNApp`) |
| `yarn workspace @callstack/brownfield-example-rock-app test` | Rock (`apps/RockApp`) |
| `yarn workspace @callstack/brownfield-example-expo-app-58 test` | Expo SDK 58 (`apps/ExpoApp58`) |

Package-level scripts (`yarn test` inside `apps/RNApp` or `apps/ExpoApp58`) invoke Jest with each app’s `jest.config.js`.
Expand All @@ -304,9 +313,11 @@ Per-app Detox scripts (run from the app directory):
| ------------------------- | --------------------------- | -------------------------- | ---------------------------------- |
| `RNApp` | `yarn e2e:build:ios` | `yarn e2e:test:ios` | `rnAppBrownfield.e2e.js` |
| `AppleApp` (vanilla) | `yarn e2e:build:ios` | `yarn e2e:test:ios` | `appleAppBrownfield.e2e.js` |
| `AppleApp` (Rock) | `yarn e2e:build:ios:rock` | `yarn e2e:test:ios:rock` | `appleAppBrownfield.e2e.js` |
| `AppleApp` (Expo 58) | `yarn e2e:build:ios:expo58` | `yarn e2e:test:ios:expo58` | `appleAppExpoBrownfield.e2e.js` |
| `AppleApp` (Expo 57) | `yarn e2e:build:ios:expo57` | `yarn e2e:test:ios:expo57` | `appleAppExpoBrownfield.e2e.js` |
| `AndroidApp` (vanilla) | `yarn e2e:build:android` | `yarn e2e:test:android` | `androidAppBrownfield.e2e.js` |
| `AndroidApp` (Rock) | `yarn e2e:build:android:rock` | `yarn e2e:test:android:rock` | `androidAppBrownfield.e2e.js` |
| `AndroidApp` (Expo 58) | `yarn e2e:build:android:expo58` | `yarn e2e:test:android:expo58` | `androidAppExpoBrownfield.e2e.js` |
| `AndroidApp` (Expo 57) | `yarn e2e:build:android:expo57` | `yarn e2e:test:android:expo57` | `androidAppExpoBrownfield.e2e.js` |

Expand All @@ -317,6 +328,7 @@ iOS Detox E2E runs in [`.github/workflows/ci.yml`](.github/workflows/ci.yml) via
| Job | E2E | Notes |
| ----------------------------- | --- | ---------------------------------------- |
| `ios-appleapp-vanilla` | Yes | `RNApp` → package → `AppleApp` Detox |
| `ios-appleapp-rock` | No | `RockApp` → package → `AppleApp` build |
| `ios-appleapp-expo` (Expo 58) | Yes | `ExpoApp58` → package → `AppleApp` Detox |
| `ios-appleapp-expo` (Expo 57) | Yes | `ExpoApp57` → package → `AppleApp` Detox |

Expand All @@ -325,6 +337,7 @@ Android Detox E2E uses [`.github/actions/androidapp-road-test`](.github/actions/
| Job | E2E | Notes |
| ---------------------------------------- | --- | --------------------------------------------- |
| `android-androidapp-vanilla` | Yes | `RNApp` → AAR → `AndroidApp` Detox |
| `android-androidapp-rock` | No | `RockApp` → AAR → `AndroidApp` build |
| `android-androidapp-expo58-build` / `-e2e` | Yes | `ExpoApp58` → AAR → Detox APKs → emulator |
| `android-androidapp-expo57-build` / `-e2e` | Yes | `ExpoApp57` → AAR → Detox APKs → emulator |

Expand All @@ -340,20 +353,22 @@ From the repo root (macOS + Xcode + Simulator required for iOS). All wrap `scrip
| ---------------------------------------------------- | -------------------------------- |
| `yarn ci:local:rnapp:e2e:ios` | RN host app E2E (`apps/RNApp`) |
| `yarn ci:local:appleapp:e2e:ios` | CI `ios-appleapp-vanilla` |
| `yarn ci:local:appleapp:e2e:ios --variant rock` | Local only (CI `ios-appleapp-rock` only builds) |
| `yarn ci:local:appleapp:e2e:ios --variant expo58` | CI `ios-appleapp-expo` (Expo 58) |
| `yarn ci:local:appleapp:e2e:ios --variant expo57` | CI `ios-appleapp-expo` (Expo 57) |

From `apps/AppleApp`, you can also use `yarn ci:local:e2e:ios:expo58` / `yarn ci:local:e2e:ios:expo57`.
From `apps/AppleApp`, you can also use `yarn ci:local:e2e:ios:rock` / `yarn ci:local:e2e:ios:expo58` / `yarn ci:local:e2e:ios:expo57`.

Android (Android SDK + emulator; defaults to `Pixel_4_API_34`):

| Command | Mirrors |
| ------------------------------------------------------- | -------------------------------------------- |
| `yarn ci:local:androidapp:e2e:android` | CI `android-androidapp-vanilla` |
| `yarn ci:local:androidapp:e2e:android:rock` | Local only (CI `android-androidapp-rock` only builds) |
| `yarn ci:local:androidapp:e2e:android:expo58` | CI Expo 58 AndroidApp Detox |
| `yarn ci:local:androidapp:e2e:android:expo57` | CI Expo 57 AndroidApp Detox |

From `apps/AndroidApp`, you can also use `yarn ci:local:e2e:android:expo58` / `yarn ci:local:e2e:android:expo57`.
From `apps/AndroidApp`, you can also use `yarn ci:local:e2e:android:rock` / `yarn ci:local:e2e:android:expo58` / `yarn ci:local:e2e:android:expo57`.

Common flags (append to any command above):

Expand Down
10 changes: 10 additions & 0 deletions apps/AndroidApp/.detoxrc.rock.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const {
createAndroidAppEmulatorReleaseDetoxConfig,
} = require('../brownfield-example-shared-tests/detox-rc-androidapp-emulator-release.cjs');

/** @type {import('detox').DetoxConfig} */
module.exports = createAndroidAppEmulatorReleaseDetoxConfig({
gradleFlavor: 'rock',
detoxConfiguration: 'android.emu.release.rock',
jestConfigPath: 'e2e/jest.config.rock.cjs',
});
4 changes: 4 additions & 0 deletions apps/AndroidApp/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ android {
create("vanilla") {
dimension = "app"
}
create("rock") {
dimension = "app"
}
}

buildTypes {
Expand Down Expand Up @@ -81,6 +84,7 @@ dependencies {
add("expo58Implementation", libs.brownfieldlib.expo58)
add("expopreviewImplementation", libs.brownfieldlib.expopreview)
add("vanillaImplementation", libs.brownfieldlib.vanilla)
add("rockImplementation", libs.brownfieldlib.rock)

implementation(libs.androidx.fragment.compose)
testImplementation(libs.junit)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.callstack.brownfield.android.example

typealias BrownfieldStore = com.callstack.rnbrownfield.demo.rockapp.BrownfieldStore
typealias User = com.callstack.rnbrownfield.demo.rockapp.User
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.callstack.brownfield.android.example

object ReactNativeConstants {
const val MAIN_MODULE_NAME = "RockApp"
const val APP_NAME = "Android"
const val WAIT_FOR_FULL_DISPLAY = true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.callstack.brownfield.android.example

import android.content.res.Configuration

typealias ReactNativeHostManager = com.callstack.rnbrownfield.demo.rockapp.ReactNativeHostManager

fun ReactNativeHostManager.onConfigurationChanged(application: android.app.Application, newConfig: Configuration) {
// no-op that is prepared to match of the Expo ReactNativeHostManager
}
14 changes: 14 additions & 0 deletions apps/AndroidApp/e2e/jest.config.rock.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
const path = require('node:path');
const {
createDetoxJestConfig,
} = require('../../brownfield-example-shared-tests/e2e/createDetoxJestConfig.cjs');

module.exports = createDetoxJestConfig({
e2eDir: __dirname,
testMatch: [
path.join(
__dirname,
'../../brownfield-example-shared-tests/e2e/androidAppBrownfield.e2e.js'
),
],
});
1 change: 1 addition & 0 deletions apps/AndroidApp/gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ brownfieldlib-expo57 = { module = "com.callstack.rnbrownfield.demo.expoapp57:bro
brownfieldlib-expo58 = { module = "com.callstack.rnbrownfield.demo.expoapp58:brownfieldlib", version.ref = "brownfieldlib" }
brownfieldlib-expopreview = { module = "com.callstack.rnbrownfield.demo.expoapppreview:brownfieldlib", version.ref = "brownfieldlib" }
brownfieldlib-vanilla = { module = "com.rnapp:brownfieldlib", version.ref = "brownfieldlib" }
brownfieldlib-rock = { module = "com.callstack.rnbrownfield.demo.rockapp:brownfieldlib", version.ref = "brownfieldlib" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
Expand Down
2 changes: 1 addition & 1 deletion apps/AndroidApp/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#Thu Dec 11 23:54:21 CET 2025
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
4 changes: 4 additions & 0 deletions apps/AndroidApp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,17 @@
"build:example:android-consumer:expo58": "./gradlew assembleExpo58Release",
"build:example:android-consumer:expopreview": "./gradlew assembleExpopreviewRelease",
"build:example:android-consumer:vanilla": "./gradlew assembleVanillaRelease",
"build:example:android-consumer:rock": "./gradlew assembleRockRelease",
"e2e:build:android": "detox build --configuration android.emu.release",
"e2e:test:android": "detox test --configuration android.emu.release",
"e2e:build:android:rock": "detox build --config-path ./.detoxrc.rock.cjs --configuration android.emu.release.rock",
"e2e:test:android:rock": "detox test --config-path ./.detoxrc.rock.cjs --configuration android.emu.release.rock",
"e2e:build:android:expo58": "detox build --config-path ./.detoxrc.expo58.cjs --configuration android.emu.release.expo58",
"e2e:test:android:expo58": "detox test --config-path ./.detoxrc.expo58.cjs --configuration android.emu.release.expo58",
"e2e:build:android:expo57": "detox build --config-path ./.detoxrc.expo57.cjs --configuration android.emu.release.expo57",
"e2e:test:android:expo57": "detox test --config-path ./.detoxrc.expo57.cjs --configuration android.emu.release.expo57",
"ci:local:e2e:android": "bash ../../scripts/ci-local-androidapp-android-e2e.sh",
"ci:local:e2e:android:rock": "bash ../../scripts/ci-local-androidapp-android-e2e.sh --variant rock",
"ci:local:e2e:android:expo58": "bash ../../scripts/ci-local-androidapp-android-e2e.sh --variant expo58",
"ci:local:e2e:android:expo57": "bash ../../scripts/ci-local-androidapp-android-e2e.sh --variant expo57"
},
Expand Down
Loading