Skip to content

Commit 6284768

Browse files
authored
Merge pull request #2199 from selfxyz/staging
Release to Production v2.9.25 - 2026-07-05
2 parents 26eeb19 + dd4de47 commit 6284768

20 files changed

Lines changed: 676 additions & 310 deletions

File tree

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Cache Turbo
2+
3+
description: Persist Turbo's local task cache (.turbo) across CI runs so unchanged workspaces are restored from cache instead of rebuilt. Local filesystem cache only — no remote cache, so TURBO_TOKEN/TURBO_TEAM must stay unset.
4+
5+
inputs:
6+
key-prefix:
7+
description: Per-workflow (or per-job) prefix so unrelated pipelines do not thrash a shared cache entry.
8+
required: true
9+
10+
runs:
11+
using: "composite"
12+
steps:
13+
- name: Cache Turbo
14+
uses: actions/cache@v4
15+
with:
16+
path: .turbo
17+
# The github.sha suffix makes every run write a fresh, immutable entry;
18+
# restore-keys then pulls the most recent prefix match. Without the
19+
# suffix the first run would freeze the cache forever (actions/cache
20+
# never overwrites an existing key), so Turbo's incremental hits would
21+
# stop improving after run #1.
22+
key: turbo-${{ inputs.key-prefix }}-${{ hashFiles('pnpm-lock.yaml', 'turbo.json') }}-${{ github.sha }}
23+
restore-keys: |
24+
turbo-${{ inputs.key-prefix }}-${{ hashFiles('pnpm-lock.yaml', 'turbo.json') }}-

.github/workflows/common-ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ jobs:
6969
run: pnpm --filter @selfxyz/mobile-sdk-alpha build
7070
- name: Build @selfxyz/qrcode
7171
run: pnpm --filter @selfxyz/qrcode build:deps
72+
- name: Cache Turbo
73+
uses: ./.github/actions/cache-turbo
74+
with:
75+
key-prefix: common-types
7276
- name: Run pnpm types
7377
run: pnpm types
7478

.github/workflows/mobile-e2e.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ jobs:
390390
build_attempt() {
391391
(
392392
cd app/android &&
393-
E2E_BUILD=true ./gradlew assembleDebug -PbundleInDebug=true --quiet --build-cache --no-configuration-cache
393+
E2E_BUILD=true ./gradlew assembleDebug -PbundleInDebug=true -PreactNativeArchitectures=x86_64 --quiet --build-cache --no-configuration-cache
394394
)
395395
}
396396

.github/workflows/rn-sdk-test-app-ci.yml

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,12 @@ jobs:
3838
with:
3939
paths: |
4040
packages/rn-sdk/src/__tests__/
41-
- name: Build common
42-
run: pnpm --filter @selfxyz/common build
43-
- name: Build mobile-sdk-alpha
44-
run: pnpm --filter @selfxyz/mobile-sdk-alpha build
45-
- name: Build webview-bridge
46-
run: pnpm --filter @selfxyz/webview-bridge build
47-
- name: Build webview-app
48-
run: pnpm --filter @selfxyz/webview-app build
41+
- name: Cache Turbo
42+
uses: ./.github/actions/cache-turbo
43+
with:
44+
key-prefix: rn-sdk-test-app-types
45+
- name: Build webview-app and dependencies
46+
run: pnpm exec turbo run build --filter="@selfxyz/webview-app"
4947
- name: Typecheck rn-sdk
5048
run: pnpm --filter @selfxyz/rn-sdk typecheck
5149
- name: Test rn-sdk

.github/workflows/webview-app-ci.yml

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,12 @@ jobs:
3232
- uses: actions/checkout@v6
3333
- name: Install dependencies
3434
uses: ./.github/actions/pnpm-install
35-
- name: Build common
36-
run: pnpm --filter @selfxyz/common build
37-
- name: Build mobile-sdk-alpha
38-
run: pnpm --filter @selfxyz/mobile-sdk-alpha build
39-
- name: Build webview-bridge
40-
run: pnpm --filter @selfxyz/webview-bridge build
41-
- name: Build webview-app
42-
run: pnpm --filter @selfxyz/webview-app build
35+
- name: Cache Turbo
36+
uses: ./.github/actions/cache-turbo
37+
with:
38+
key-prefix: webview-app-build
39+
- name: Build webview-app and dependencies
40+
run: pnpm exec turbo run build --filter="@selfxyz/webview-app"
4341

4442
lint:
4543
runs-on: ubuntu-latest
@@ -48,12 +46,12 @@ jobs:
4846
- uses: actions/checkout@v6
4947
- name: Install dependencies
5048
uses: ./.github/actions/pnpm-install
51-
- name: Build common
52-
run: pnpm --filter @selfxyz/common build
53-
- name: Build mobile-sdk-alpha
54-
run: pnpm --filter @selfxyz/mobile-sdk-alpha build
55-
- name: Build webview-bridge
56-
run: pnpm --filter @selfxyz/webview-bridge build
49+
- name: Cache Turbo
50+
uses: ./.github/actions/cache-turbo
51+
with:
52+
key-prefix: webview-app-lint
53+
- name: Build dependencies
54+
run: pnpm exec turbo run build --filter="@selfxyz/webview-app^..."
5755
- name: Run linter
5856
run: pnpm --filter @selfxyz/webview-app lint
5957

@@ -74,12 +72,12 @@ jobs:
7472
- uses: actions/checkout@v6
7573
- name: Install dependencies
7674
uses: ./.github/actions/pnpm-install
77-
- name: Build common
78-
run: pnpm --filter @selfxyz/common build
79-
- name: Build mobile-sdk-alpha
80-
run: pnpm --filter @selfxyz/mobile-sdk-alpha build
81-
- name: Build webview-bridge
82-
run: pnpm --filter @selfxyz/webview-bridge build
75+
- name: Cache Turbo
76+
uses: ./.github/actions/cache-turbo
77+
with:
78+
key-prefix: webview-app-types
79+
- name: Build dependencies
80+
run: pnpm exec turbo run build --filter="@selfxyz/webview-app^..."
8381
- name: Typecheck
8482
run: pnpm --filter @selfxyz/webview-app types
8583

@@ -90,11 +88,16 @@ jobs:
9088
- uses: actions/checkout@v6
9189
- name: Install dependencies
9290
uses: ./.github/actions/pnpm-install
93-
- name: Build common
94-
run: pnpm --filter @selfxyz/common build
95-
- name: Build mobile-sdk-alpha
96-
run: pnpm --filter @selfxyz/mobile-sdk-alpha build
97-
- name: Build webview-bridge
98-
run: pnpm --filter @selfxyz/webview-bridge build
91+
- name: Check for nested require() in tests
92+
uses: ./.github/actions/check-nested-requires
93+
with:
94+
paths: |
95+
packages/webview-app/tests/
96+
- name: Cache Turbo
97+
uses: ./.github/actions/cache-turbo
98+
with:
99+
key-prefix: webview-app-test
100+
- name: Build dependencies
101+
run: pnpm exec turbo run build --filter="@selfxyz/webview-app^..."
99102
- name: Test
100103
run: pnpm --filter @selfxyz/webview-app test

.github/workflows/webview-bridge-ci.yml

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ jobs:
3030
- uses: actions/checkout@v6
3131
- name: Install dependencies
3232
uses: ./.github/actions/pnpm-install
33-
- name: Build common
34-
run: pnpm --filter @selfxyz/common build
35-
- name: Build mobile-sdk-alpha
36-
run: pnpm --filter @selfxyz/mobile-sdk-alpha build
37-
- name: Build
38-
run: pnpm --filter @selfxyz/webview-bridge build
33+
- name: Cache Turbo
34+
uses: ./.github/actions/cache-turbo
35+
with:
36+
key-prefix: webview-bridge-build
37+
- name: Build webview-bridge and dependencies
38+
run: pnpm exec turbo run build --filter="@selfxyz/webview-bridge"
3939

4040
lint:
4141
runs-on: ubuntu-latest
@@ -44,10 +44,12 @@ jobs:
4444
- uses: actions/checkout@v6
4545
- name: Install dependencies
4646
uses: ./.github/actions/pnpm-install
47-
- name: Build common
48-
run: pnpm --filter @selfxyz/common build
49-
- name: Build mobile-sdk-alpha
50-
run: pnpm --filter @selfxyz/mobile-sdk-alpha build
47+
- name: Cache Turbo
48+
uses: ./.github/actions/cache-turbo
49+
with:
50+
key-prefix: webview-bridge-lint
51+
- name: Build dependencies
52+
run: pnpm exec turbo run build --filter="@selfxyz/webview-bridge^..."
5153
- name: Run linter
5254
run: pnpm --filter @selfxyz/webview-bridge lint
5355

@@ -68,10 +70,12 @@ jobs:
6870
- uses: actions/checkout@v6
6971
- name: Install dependencies
7072
uses: ./.github/actions/pnpm-install
71-
- name: Build common
72-
run: pnpm --filter @selfxyz/common build
73-
- name: Build mobile-sdk-alpha
74-
run: pnpm --filter @selfxyz/mobile-sdk-alpha build
73+
- name: Cache Turbo
74+
uses: ./.github/actions/cache-turbo
75+
with:
76+
key-prefix: webview-bridge-types
77+
- name: Build dependencies
78+
run: pnpm exec turbo run build --filter="@selfxyz/webview-bridge^..."
7579
- name: Typecheck
7680
run: pnpm --filter @selfxyz/webview-bridge types
7781

.github/workflows/workspace-ci.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ jobs:
6060
- name: Install Dependencies
6161
uses: ./.github/actions/pnpm-install
6262

63+
- name: Cache Turbo
64+
uses: ./.github/actions/cache-turbo
65+
with:
66+
key-prefix: workspace-build
67+
6368
- name: Run workspace build
6469
run: pnpm build
6570

@@ -84,6 +89,11 @@ jobs:
8489
- name: Install Dependencies
8590
uses: ./.github/actions/pnpm-install
8691

92+
- name: Cache Turbo
93+
uses: ./.github/actions/cache-turbo
94+
with:
95+
key-prefix: workspace-type-check
96+
8797
- name: Build workspace dependencies
8898
run: pnpm build
8999

@@ -114,6 +124,11 @@ jobs:
114124
unzip -o /tmp/swiftlint.zip -d /tmp/swiftlint
115125
sudo install /tmp/swiftlint/swiftlint /usr/local/bin/swiftlint
116126
127+
- name: Cache Turbo
128+
uses: ./.github/actions/cache-turbo
129+
with:
130+
key-prefix: workspace-lint
131+
117132
- name: Build workspace dependencies
118133
run: pnpm build
119134

@@ -144,6 +159,11 @@ jobs:
144159
unzip -o /tmp/swiftlint.zip -d /tmp/swiftlint
145160
sudo install /tmp/swiftlint/swiftlint /usr/local/bin/swiftlint
146161
162+
- name: Cache Turbo
163+
uses: ./.github/actions/cache-turbo
164+
with:
165+
key-prefix: workspace-format-check
166+
147167
- name: Build workspace dependencies
148168
run: pnpm build
149169

@@ -191,6 +211,11 @@ jobs:
191211
- name: Install Dependencies
192212
uses: ./.github/actions/pnpm-install
193213

214+
- name: Cache Turbo
215+
uses: ./.github/actions/cache-turbo
216+
with:
217+
key-prefix: workspace-test
218+
194219
- name: Build workspace dependencies
195220
run: pnpm build
196221

app/android/app/build.gradle

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ android {
160160
minSdkVersion rootProject.ext.minSdkVersion
161161
targetSdkVersion rootProject.ext.targetSdkVersion
162162
versionCode 162
163-
versionName "2.9.25"
163+
versionName "2.9.26"
164164
manifestPlaceholders = [appAuthRedirectScheme: 'com.proofofpassportapp']
165165
externalNativeBuild {
166166
cmake {
@@ -214,6 +214,12 @@ android {
214214
}
215215
}
216216

217+
testOptions {
218+
unitTests {
219+
includeAndroidResources = true
220+
}
221+
}
222+
217223
packagingOptions {
218224
jniLibs {
219225
// Use legacy packaging (compressed, extracted at install) to ensure
@@ -274,6 +280,10 @@ dependencies {
274280
implementation "com.google.android.material:material:1.12.0"
275281

276282
implementation "com.google.android.play:app-update:2.1.0"
283+
284+
testImplementation "junit:junit:4.13.2"
285+
testImplementation "org.robolectric:robolectric:4.15.1"
286+
testImplementation "androidx.test:core:1.6.1"
277287
}
278288

279289
java {

app/android/app/src/main/java/com/proofofpassportapp/MainApplication.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class MainApplication : Application(), ReactApplication {
3333

3434
override val reactNativeHost: ReactNativeHost =
3535
object : DefaultReactNativeHost(this) {
36-
override fun getPackages(): MutableList<ReactPackage> = packages
36+
override fun getPackages(): MutableList<ReactPackage> = this@MainApplication.packages
3737

3838
override fun getJSMainModuleName(): String = "index"
3939

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:tools="http://schemas.android.com/tools">
4+
<application
5+
android:name=".MainApplication"
6+
android:icon="@mipmap/ic_launcher"
7+
android:roundIcon="@mipmap/ic_launcher"
8+
android:extractNativeLibs="false"
9+
android:allowBackup="false"
10+
tools:replace="android:icon, android:roundIcon, android:name, android:extractNativeLibs, android:allowBackup">
11+
<!-- Same ML Kit override as the main manifest; the unit-test manifest
12+
merge does not inherit it -->
13+
<meta-data
14+
android:name="com.google.mlkit.vision.DEPENDENCIES"
15+
android:value="ocr,face"
16+
tools:replace="android:value" />
17+
<meta-data
18+
android:name="com.google.firebase.messaging.default_notification_channel_id"
19+
android:value="@string/default_notification_channel_id"
20+
tools:replace="android:value" />
21+
<meta-data
22+
android:name="com.google.firebase.messaging.default_notification_color"
23+
android:resource="@color/notification_color"
24+
tools:replace="android:resource" />
25+
</application>
26+
</manifest>

0 commit comments

Comments
 (0)