Skip to content

Commit f65a9ab

Browse files
committed
ci: add build steps
1 parent fc0e90e commit f65a9ab

File tree

2 files changed

+87
-1
lines changed

2 files changed

+87
-1
lines changed

.github/workflows/deploy.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,93 @@ permissions:
3131
id-token: write # Required for OIDC trusted publishing
3232

3333
jobs:
34+
# Pre-release validation jobs
35+
validate-android:
36+
runs-on: ubuntu-latest
37+
timeout-minutes: 20
38+
env:
39+
GRADLE_OPTS: '-Dorg.gradle.daemon=true -Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.jvmargs="-Xmx4096m -XX:MaxMetaspaceSize=1024m -XX:+HeapDumpOnOutOfMemoryError"'
40+
steps:
41+
- name: Checkout
42+
uses: actions/checkout@v4
43+
44+
- name: Setup Node.js
45+
uses: actions/setup-node@v4
46+
with:
47+
node-version: 20.x
48+
49+
- name: Enable Corepack (Yarn 3)
50+
run: corepack enable
51+
52+
- name: Install dependencies
53+
run: yarn install --immutable
54+
55+
- name: Generate nitrogen code
56+
run: yarn nitrogen
57+
58+
- name: Install JDK
59+
uses: actions/setup-java@v4
60+
with:
61+
distribution: 'temurin'
62+
java-version: '17'
63+
64+
- name: Accept Android SDK licenses
65+
run: yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses || true
66+
67+
- name: Build Android library
68+
working-directory: example/android
69+
run: ./gradlew :react-native-iap:assembleDebug --stacktrace
70+
71+
validate-ios:
72+
runs-on: macos-15
73+
timeout-minutes: 30
74+
env:
75+
XCODE_VERSION: 16.4
76+
steps:
77+
- name: Checkout
78+
uses: actions/checkout@v4
79+
80+
- name: Setup Node.js
81+
uses: actions/setup-node@v4
82+
with:
83+
node-version: 20.x
84+
85+
- name: Enable Corepack (Yarn 3)
86+
run: corepack enable
87+
88+
- name: Install dependencies
89+
run: yarn install --immutable
90+
91+
- name: Generate nitrogen code
92+
run: yarn nitrogen
93+
94+
- name: Set up Xcode
95+
uses: maxim-lobanov/setup-xcode@v1
96+
with:
97+
xcode-version: ${{ env.XCODE_VERSION }}
98+
99+
- name: Install Ruby dependencies
100+
working-directory: example
101+
run: bundle install
102+
103+
- name: Install CocoaPods dependencies
104+
working-directory: example/ios
105+
run: bundle exec pod install
106+
107+
- name: Build iOS library
108+
working-directory: example/ios
109+
run: |
110+
set -o pipefail
111+
xcodebuild build \
112+
-workspace example.xcworkspace \
113+
-scheme example \
114+
-destination 'generic/platform=iOS Simulator' \
115+
-configuration Debug \
116+
CODE_SIGNING_ALLOWED=NO \
117+
COMPILER_INDEX_STORE_ENABLE=NO
118+
34119
deploy:
120+
needs: [validate-android, validate-ios]
35121
runs-on: ubuntu-latest
36122

37123
steps:

android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ class HybridRnIap : HybridRnIapSpec() {
339339

340340
if (activity == null) {
341341
RnIapLog.warn("requestPurchase: Activity is null - cannot start purchase flow")
342-
sendPurchaseError(toErrorResult(OpenIAPError.ActivityUnavailable))
342+
sendPurchaseError(toErrorResult(OpenIAPError.MissingCurrentActivity))
343343
return@async defaultResult
344344
}
345345

0 commit comments

Comments
 (0)