From 8c75397e72c39d99f36c88342b61bea5524563d0 Mon Sep 17 00:00:00 2001 From: Shawn Jackson Date: Wed, 19 Aug 2026 10:12:13 -0700 Subject: [PATCH 1/5] RG-T132 Build fix --- .github/workflows/react-native-cicd.yml | 12 +++++++++++- eas.json | 5 +++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/react-native-cicd.yml b/.github/workflows/react-native-cicd.yml index 8ba51155..56be81b0 100644 --- a/.github/workflows/react-native-cicd.yml +++ b/.github/workflows/react-native-cicd.yml @@ -195,6 +195,16 @@ jobs: run: | echo $UNIT_GOOGLE_SERVICES | base64 -d > google-services.json + - name: ๐Ÿ“‹ Create Android Keystore + if: ${{ matrix.platform == 'android' }} + run: | + echo $UNIT_ANDROID_KS | base64 -d > keystore.jks + + - name: ๐Ÿ“‹ Create Credentials File + if: ${{ matrix.platform == 'android' }} + run: | + echo $CREDENTIALS_JSON_BASE64 | base64 -d > credentials.json + - name: ๐Ÿ“‹ Create Google Json File for iOS if: ${{ matrix.platform == 'ios' }} run: | @@ -275,7 +285,7 @@ jobs: if: (matrix.platform == 'android' && (github.event.inputs.buildType == 'all' || github.event_name == 'push' || github.event.inputs.buildType == 'prod-aab')) run: | export NODE_OPTIONS="--openssl-legacy-provider --max_old_space_size=4096" - eas build --platform android --profile production --local --non-interactive --output=./ResgridUnit-prod.aab + eas build --platform android --profile production-aab --local --non-interactive --output=./ResgridUnit-prod.aab env: NODE_ENV: production diff --git a/eas.json b/eas.json index ce050f21..b5ab04f0 100644 --- a/eas.json +++ b/eas.json @@ -19,8 +19,13 @@ "FLIPPER_DISABLE": "1" } }, + "production-aab": { + "extends": "production", + "credentialsSource": "local" + }, "production-apk": { "distribution": "store", + "credentialsSource": "local", "yarn": "1.22.22", "ios": { "image": "latest" From 0bd2ecef2d4a684357b317653eeaaef171d24a72 Mon Sep 17 00:00:00 2001 From: Shawn Jackson Date: Wed, 19 Aug 2026 10:29:06 -0700 Subject: [PATCH 2/5] RG-T132 PR#276 fixes --- .easignore | 3 ++- .github/workflows/react-native-cicd.yml | 16 ++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.easignore b/.easignore index 91336748..ed0fa9ae 100644 --- a/.easignore +++ b/.easignore @@ -26,4 +26,5 @@ expo-env.d.ts # Include a file not in source control !google-services.json -!credentials.json \ No newline at end of file +!credentials.json +!keystore.jks \ No newline at end of file diff --git a/.github/workflows/react-native-cicd.yml b/.github/workflows/react-native-cicd.yml index 56be81b0..f29266f8 100644 --- a/.github/workflows/react-native-cicd.yml +++ b/.github/workflows/react-native-cicd.yml @@ -193,22 +193,22 @@ jobs: - name: ๐Ÿ“‹ Create Google Json File if: ${{ matrix.platform == 'android' }} run: | - echo $UNIT_GOOGLE_SERVICES | base64 -d > google-services.json + printf '%s' "$UNIT_GOOGLE_SERVICES" | base64 -d > google-services.json - name: ๐Ÿ“‹ Create Android Keystore if: ${{ matrix.platform == 'android' }} run: | - echo $UNIT_ANDROID_KS | base64 -d > keystore.jks + printf '%s' "$UNIT_ANDROID_KS" | base64 -d > keystore.jks - name: ๐Ÿ“‹ Create Credentials File if: ${{ matrix.platform == 'android' }} run: | - echo $CREDENTIALS_JSON_BASE64 | base64 -d > credentials.json + printf '%s' "$CREDENTIALS_JSON_BASE64" | base64 -d > credentials.json - name: ๐Ÿ“‹ Create Google Json File for iOS if: ${{ matrix.platform == 'ios' }} run: | - echo $UNIT_IOS_GOOGLE_SERVICES | base64 -d > GoogleService-Info.plist + printf '%s' "$UNIT_IOS_GOOGLE_SERVICES" | base64 -d > GoogleService-Info.plist - name: ๐Ÿ“‹ Update package.json Versions run: | @@ -254,7 +254,7 @@ jobs: - name: ๐Ÿ“‹ Create iOS Cert run: | - echo $UNIT_IOS_CERT | base64 -d > AuthKey_HRBP5FNJN6.p8 + printf '%s' "$UNIT_IOS_CERT" | base64 -d > AuthKey_HRBP5FNJN6.p8 - name: ๐Ÿ“‹ Restore gradle.properties env: @@ -262,7 +262,7 @@ jobs: shell: bash run: | mkdir -p ~/.gradle/ - echo ${GRADLE_PROPERTIES} > ~/.gradle/gradle.properties + printf '%s\n' "$GRADLE_PROPERTIES" > ~/.gradle/gradle.properties - name: ๐Ÿ“ฑ Build Development APK if: (matrix.platform == 'android' && (github.event.inputs.buildType == 'all' || github.event_name == 'push' || github.event.inputs.buildType == 'dev')) @@ -313,6 +313,10 @@ jobs: env: NODE_ENV: production + - name: ๐Ÿงน Remove signing materials + if: always() + run: rm -f keystore.jks credentials.json AuthKey_HRBP5FNJN6.p8 + - name: ๐Ÿ“ฆ Upload build artifacts to GitHub uses: actions/upload-artifact@v4 with: From 47a02a61da4f09d19eea1567bf87941a24c3ad02 Mon Sep 17 00:00:00 2001 From: Shawn Jackson Date: Wed, 19 Aug 2026 10:33:55 -0700 Subject: [PATCH 3/5] RG-T132 PR#276 fix --- .easignore | 3 +-- .github/workflows/react-native-cicd.yml | 11 ++++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.easignore b/.easignore index ed0fa9ae..91336748 100644 --- a/.easignore +++ b/.easignore @@ -26,5 +26,4 @@ expo-env.d.ts # Include a file not in source control !google-services.json -!credentials.json -!keystore.jks \ No newline at end of file +!credentials.json \ No newline at end of file diff --git a/.github/workflows/react-native-cicd.yml b/.github/workflows/react-native-cicd.yml index f29266f8..50b55731 100644 --- a/.github/workflows/react-native-cicd.yml +++ b/.github/workflows/react-native-cicd.yml @@ -195,15 +195,20 @@ jobs: run: | printf '%s' "$UNIT_GOOGLE_SERVICES" | base64 -d > google-services.json + # Keystore is decoded OUTSIDE the project root so it can never be picked up + # by the EAS build archive or any artifact globs; credentials.json points to + # it via an absolute path (supported by EAS for local credentials). - name: ๐Ÿ“‹ Create Android Keystore if: ${{ matrix.platform == 'android' }} run: | - printf '%s' "$UNIT_ANDROID_KS" | base64 -d > keystore.jks + printf '%s' "$UNIT_ANDROID_KS" | base64 -d > "$RUNNER_TEMP/keystore.jks" + chmod 600 "$RUNNER_TEMP/keystore.jks" - name: ๐Ÿ“‹ Create Credentials File if: ${{ matrix.platform == 'android' }} run: | - printf '%s' "$CREDENTIALS_JSON_BASE64" | base64 -d > credentials.json + printf '%s' "$CREDENTIALS_JSON_BASE64" | base64 -d \ + | jq --arg ks "$RUNNER_TEMP/keystore.jks" '.android.keystore.keystorePath = $ks' > credentials.json - name: ๐Ÿ“‹ Create Google Json File for iOS if: ${{ matrix.platform == 'ios' }} @@ -315,7 +320,7 @@ jobs: - name: ๐Ÿงน Remove signing materials if: always() - run: rm -f keystore.jks credentials.json AuthKey_HRBP5FNJN6.p8 + run: rm -f credentials.json AuthKey_HRBP5FNJN6.p8 "$RUNNER_TEMP/keystore.jks" - name: ๐Ÿ“ฆ Upload build artifacts to GitHub uses: actions/upload-artifact@v4 From 2b0861a7b735fa7c17ac2151f16d78dc07b6cc31 Mon Sep 17 00:00:00 2001 From: Shawn Jackson Date: Wed, 19 Aug 2026 10:37:28 -0700 Subject: [PATCH 4/5] RT-T132 PR#276 fixes --- .github/workflows/react-native-cicd.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/react-native-cicd.yml b/.github/workflows/react-native-cicd.yml index 50b55731..5242703c 100644 --- a/.github/workflows/react-native-cicd.yml +++ b/.github/workflows/react-native-cicd.yml @@ -204,6 +204,14 @@ jobs: printf '%s' "$UNIT_ANDROID_KS" | base64 -d > "$RUNNER_TEMP/keystore.jks" chmod 600 "$RUNNER_TEMP/keystore.jks" + - name: ๐Ÿ“‹ Ensure jq exists + if: ${{ matrix.platform == 'android' }} + run: | + if ! command -v jq >/dev/null 2>&1; then + echo "Installing jq..." + sudo apt-get update && sudo apt-get install -y jq + fi + - name: ๐Ÿ“‹ Create Credentials File if: ${{ matrix.platform == 'android' }} run: | From d78eb654a62dedec02af958ce001cae49d53cbd5 Mon Sep 17 00:00:00 2001 From: Shawn Jackson Date: Wed, 19 Aug 2026 10:42:30 -0700 Subject: [PATCH 5/5] RG-T132 PR#276 fix --- .github/workflows/react-native-cicd.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/react-native-cicd.yml b/.github/workflows/react-native-cicd.yml index 5242703c..25e5f54a 100644 --- a/.github/workflows/react-native-cicd.yml +++ b/.github/workflows/react-native-cicd.yml @@ -266,6 +266,7 @@ jobs: eas --version - name: ๐Ÿ“‹ Create iOS Cert + if: ${{ matrix.platform == 'ios' }} run: | printf '%s' "$UNIT_IOS_CERT" | base64 -d > AuthKey_HRBP5FNJN6.p8 @@ -328,7 +329,7 @@ jobs: - name: ๐Ÿงน Remove signing materials if: always() - run: rm -f credentials.json AuthKey_HRBP5FNJN6.p8 "$RUNNER_TEMP/keystore.jks" + run: rm -f credentials.json AuthKey_HRBP5FNJN6.p8 "$RUNNER_TEMP/keystore.jks" ~/.gradle/gradle.properties - name: ๐Ÿ“ฆ Upload build artifacts to GitHub uses: actions/upload-artifact@v4