Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
44 changes: 38 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,17 @@ jobs:

test-ios:
needs: test-rn
runs-on: macos-13
runs-on: macos-14
env:
RCT_NEW_ARCH_ENABLED: 0
RCT_NO_LAUNCH_PACKAGER: 1
USE_METRO_BUNDLER: 0
FORCE_BUNDLING: 1

steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.2'
xcode-version: '16.1'

- name: Checkout
uses: actions/checkout@v2
Expand All @@ -52,6 +57,12 @@ jobs:
with:
node-version: ${{ env.NODE_JS_VERSION }}

- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2'
bundler-cache: true # Caches gems

- name: Install SDK Dependencies
run: yarn install --frozen-lockfile

Expand All @@ -62,13 +73,34 @@ jobs:
working-directory: ./sample
run: npm ci --legacy-peer-deps

- name: Install pods
- name: Bundle install (Ruby gems)
working-directory: ./sample
run: cd ios && pod install
run: |
bundle config set path 'vendor/bundle'
bundle install --jobs 4 --retry 3

- name: Install pods (via bundler)
working-directory: ./sample/ios
run: |
pod deintegrate
pod cache clean --all
bundle exec pod install --repo-update
Comment on lines +85 to +87
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Run CocoaPods commands through Bundler.

Lines [80-82] call pod deintegrate and pod cache clean without bundle exec, so they hit the runner’s global cocoapods instead of the version (and plugins like cocoapods-deintegrate) you just installed via Bundler. On runners where those commands aren’t preinstalled, the step will fail (pod: command not found or Unknown command 'deintegrate'). Please execute every pod command through Bundler for consistency and to guarantee the expected plugin set.

Apply this diff:

-          pod deintegrate
-          pod cache clean --all
-          bundle exec pod install --repo-update
+          bundle exec pod deintegrate
+          bundle exec pod cache clean --all
+          bundle exec pod install --repo-update
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
pod deintegrate
pod cache clean --all
bundle exec pod install --repo-update
bundle exec pod deintegrate
bundle exec pod cache clean --all
bundle exec pod install --repo-update
🤖 Prompt for AI Agents
.github/workflows/ci.yml around lines 80 to 82: the workflow runs `pod
deintegrate` and `pod cache clean --all` directly which can invoke the runner’s
global CocoaPods (or fail if not installed) instead of the Bundler-installed
version and plugins; update the workflow so every `pod` invocation in this step
is prefixed with `bundle exec` (e.g., `bundle exec pod deintegrate`, `bundle
exec pod cache clean --all`, `bundle exec pod install --repo-update`) to ensure
the correct CocoaPods binary and plugins from the Gemfile are used.


- name: Clean Xcode Build Artifacts
run: |
rm -rf ~/Library/Developer/Xcode/DerivedData/*

- name: Run tests
working-directory: ./sample
run: cd ios && xcodebuild -workspace sample.xcworkspace -scheme "sample" -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 14' test
working-directory: ./sample/ios
run: |
set -o pipefail && \
xcodebuild \
-workspace sample.xcworkspace \
-scheme "sample" \
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,OS=latest,name=iPhone 16 Pro' \
-only-testing:sampleTests \
test | bundle exec xcpretty && exit ${PIPESTATUS[0]}

test-android:
needs: test-rn
Expand Down
Loading