-
Notifications
You must be signed in to change notification settings - Fork 4
Develop #167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughUpdates CI: iOS runner from macos-14 to macos-15 and adjusts release notes header to Version 7.${{ github.run_number }}. Upgrades package.json dependencies across Expo SDK (to 53), React 19, React Native 0.79.5, and associated libraries and tooling, including TypeScript and Jest Expo. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (4)
.github/workflows/react-native-cicd.yml (3)
153-160: jq install will fail on macOS runners (apt-get unavailable).The step runs on both Ubuntu and macOS; if jq is missing on macOS, apt-get will error. Gate by OS and use Homebrew on macOS.
Apply:
- # Check if jq is installed, if not install it - if ! command -v jq &> /dev/null; then - echo "Installing jq..." - sudo apt-get update && sudo apt-get install -y jq - fi + # Ensure jq exists on both Linux and macOS + if ! command -v jq >/dev/null 2>&1; then + echo "Installing jq..." + if [[ "$RUNNER_OS" == "Linux" ]]; then + sudo apt-get update && sudo apt-get install -y jq + elif [[ "$RUNNER_OS" == "macOS" ]]; then + brew update && brew install jq + else + echo "Unsupported OS for auto-install of jq" >&2; exit 1 + fi + fi
149-152: Limit secrets to the relevant platform and clean up sensitive files.Avoid writing Android/iOS secrets on the opposite platform and remove the .p8 after use.
- - name: 📋 Create Google Json File + - name: 📋 Create Google Json File + if: ${{ matrix.platform == 'android' }} run: | echo $UNIT_GOOGLE_SERVICES | base64 -d > google-services.json - - name: 📋 Create iOS Cert + - name: 📋 Create iOS Cert + if: ${{ matrix.platform == 'ios' }} run: | - echo $UNIT_IOS_CERT | base64 -d > AuthKey_HRBP5FNJN6.p8 + echo $UNIT_IOS_CERT | base64 -d > "AuthKey_${EXPO_ASC_KEY_ID}.p8" - - name: 📋 Restore gradle.properties + - name: 📋 Restore gradle.properties + if: ${{ matrix.platform == 'android' }} env: GRADLE_PROPERTIES: ${{ secrets.GRADLE_PROPERTIES }} shell: bash run: | mkdir -p ~/.gradle/ echo ${GRADLE_PROPERTIES} > ~/.gradle/gradle.properties + + - name: 🧹 Cleanup sensitive files + if: ${{ matrix.platform == 'ios' }} + run: | + rm -f "AuthKey_${EXPO_ASC_KEY_ID}.p8"Also applies to: 189-192, 193-200
264-268: Pin third‑party GitHub Action to a version/commit.Using @main risks supply-chain breakages. Pin to a release tag or SHA.
- - name: 📦 Setup Firebase CLI - uses: w9jds/setup-firebase@main + - name: 📦 Setup Firebase CLI + uses: w9jds/setup-firebase@v2.0.0package.json (1)
183-184: Jest/Babel-Jest version mismatch will break tests.jest is ~29.7 but babel-jest is ~30. Align babel-jest to 29.x (or upgrade jest + jest-expo together). Given jest-expo ~53 expects Jest 29, prefer downgrading babel-jest.
- "babel-jest": "~30.0.0", + "babel-jest": "~29.7.0",Also applies to: 199-202
🧹 Nitpick comments (6)
.github/workflows/react-native-cicd.yml (3)
116-116: macOS 15 runner upgrade — verify Xcode and toolchain.Good to pin to macos-15. Please confirm the image provides the required Xcode/Command Line Tools for EAS local iOS builds, or add an explicit Xcode setup step to avoid silent image drift.
Example (optional):
strategy: matrix: platform: [android, ios] - runs-on: ${{ matrix.platform == 'ios' && 'macos-15' || 'ubuntu-latest' }} + runs-on: ${{ matrix.platform == 'ios' && 'macos-15' || 'ubuntu-latest' }} + # For iOS ensure consistent Xcode, e.g. 16.x + # - name: Select Xcode + # if: ${{ matrix.platform == 'ios' }} + # run: sudo xcode-select -s "/Applications/Xcode_16.2.app"
250-261: Artifact upload may warn/fail on missing files.Only one platform produces a subset of these files. Add if-no-files-found: ignore to reduce noise.
- name: 📦 Upload build artifacts to GitHub uses: actions/upload-artifact@v4 with: name: app-builds-${{ matrix.platform }} path: | ./ResgridUnit-dev.apk ./ResgridUnit-prod.apk ./ResgridUnit-prod.aab ./ResgridUnit-ios-dev.ipa ./ResgridUnit-ios-adhoc.ipa ./ResgridUnit-ios-prod.ipa retention-days: 7 + if-no-files-found: ignore
122-127: Node 24 across CI — confirm compatibility with Expo SDK 53/RN 0.79 toolchains.Some native modules and CLIs still recommend Node 18/20 LTS. Consider pinning Node 20 LTS unless Node 24 is required.
- node-version: '24' + node-version: '20'package.json (3)
105-133: Expo SDK 53: use tilde for expo core to avoid unintended minor bumps.Expo recommends ~ on SDK-managed packages. You’re using ^ for expo itself, which can pull incompatible minors.
- "expo": "^53.0.0", + "expo": "~53.0.0",
232-238: Stale expo.install.exclude versions.These still reference older RN/gesture-handler/screens/etc. Update to the new ranges or remove the block to let expo manage them correctly.
- "react-native@~0.76.6", - "react-native-reanimated@~3.16.1", - "react-native-gesture-handler@~2.20.0", - "react-native-screens@~4.4.0", - "react-native-safe-area-context@~4.12.0", - "react-native-webview@~13.12.5" + "react-native@0.79.5", + "react-native-reanimated@~3.17.4", + "react-native-gesture-handler@~2.24.0", + "react-native-screens@~4.11.1", + "react-native-safe-area-context@5.4.0", + "react-native-webview@~13.13.1"Or remove if no longer needed.
150-151: Version pinning sanity pass.
- react-native-svg-transformer ~1.5.1 with svg 15.11.2: generally OK but please confirm compatibility matrix.
- typescript ~5.8.3 + ts-jest ~29.1.2: ensure ts-jest supports TS 5.8.
Also applies to: 156-156, 160-161, 208-213
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
yarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (2)
.github/workflows/react-native-cicd.yml(2 hunks)package.json(6 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*
📄 CodeRabbit inference engine (.cursorrules)
Directory and file names should be lowercase and hyphenated (e.g., user-profile, chat-screen)
Files:
package.json
🔇 Additional comments (2)
.github/workflows/react-native-cicd.yml (1)
301-305: Release notes header changed to 7. — consistent with tag/name below.*Looks good and consistent with the release step.
package.json (1)
141-162: React 19 + RN 0.79: verify peer-deps for key native libs.Double-check peer ranges for reanimated, gesture-handler, screens, safe-area-context, svg, and web. These are common friction points on major upgrades.
Would you like a one-off script to parse installed peer requirements and report mismatches?
Also applies to: 150-161, 152-160, 156-161
|
Approve |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR is approved.
Summary by CodeRabbit