Skip to content

Conversation

@transphorm
Copy link
Member

@transphorm transphorm commented Nov 4, 2025

Summary by CodeRabbit

  • Chores
    • Adjusted iOS CI workflows' caching strategy: removed build artifact (DerivedData) caching while retaining dependency (Pod) caching. This modifies cache restoration/storage behavior in iOS jobs to skip DerivedData steps while keeping dependency caches for performance.

@transphorm transphorm changed the title remove derived data caching bugfix: remove derived data caching Nov 4, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 4, 2025

Walkthrough

Removed DerivedData cache restore/save steps from two iOS E2E GitHub Actions workflows and replaced them with comments noting intermittent build failures; CocoaPods caching remains enabled in both workflows.

Changes

Cohort / File(s) Change Summary
Remove DerivedData caching from iOS E2E workflows
​.github/workflows/mobile-e2e.yml, ​.github/workflows/mobile-sdk-demo-e2e.yml
Deleted DerivedData cache restore and save steps and added a comment explaining DerivedData caching is disabled due to intermittent build failures; Pod/CocoaPods cache steps left intact.

Sequence Diagram(s)

(omitted — changes are limited to CI cache steps and do not alter runtime control flow)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Potential hotspots to glance at:

  • ​.github/workflows/mobile-e2e.yml — ensure removing cache steps didn’t break job step ordering or references.
  • ​.github/workflows/mobile-sdk-demo-e2e.yml — verify Pod cache keys and restore still function correctly.

Possibly related PRs

Suggested labels

codex

Suggested reviewers

  • remicolin
  • aaronmgdr

Poem

🔧 Caches trimmed where gremlins played,
Pods remain to speed the trade.
DerivedData put on pause today —
CI calms down and finds its way. ✨

Pre-merge checks and finishing touches

✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: removing DerivedData caching from iOS workflows to fix intermittent build failures.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch justin/bugfix-mobile-e2e-tests

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5cee1db and 122c1dd.

📒 Files selected for processing (1)
  • .github/workflows/mobile-sdk-demo-e2e.yml (2 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
.github/workflows/**/*.{yml,yaml}

📄 CodeRabbit inference engine (AGENTS.md)

.github/workflows/**/*.{yml,yaml}: In GitHub workflows, use the shared composite actions in .github/actions for dependency caching instead of calling actions/cache directly
Use the cache-yarn composite action for Yarn dependency caching in workflows
Use the cache-bundler composite action for Ruby gems caching in workflows
Use the cache-gradle composite action for Gradle caching in workflows
Use the cache-pods composite action for CocoaPods caching in workflows

Files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
🧠 Learnings (17)
📓 Common learnings
Learnt from: CR
Repo: selfxyz/self PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-10-04T05:29:43.587Z
Learning: Applies to .github/workflows/**/*.{yml,yaml} : Use the cache-pods composite action for CocoaPods caching in workflows
Learnt from: transphorm
Repo: selfxyz/self PR: 1244
File: .github/workflows/mobile-deploy.yml:774-776
Timestamp: 2025-10-08T20:23:58.783Z
Learning: In the selfxyz/self repository, for the mobile deployment workflow (.github/workflows/mobile-deploy.yml):
- iOS builds cache Ruby gems at `app/ios/vendor/bundle`
- Android builds cache Ruby gems at `app/vendor/bundle`
- These paths should be used consistently within their respective build jobs
Learnt from: transphorm
Repo: selfxyz/self PR: 823
File: app/ios/Self.xcodeproj/project.pbxproj:320-332
Timestamp: 2025-08-02T23:53:45.928Z
Learning: When reviewing autogenerated scripts in Xcode project files (like React Native Firebase's embedded shell scripts), avoid suggesting edits since these are regenerated during pod install and cannot be manually modified by users.
📚 Learning: 2025-09-22T11:10:57.879Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: app/AGENTS.md:0-0
Timestamp: 2025-09-22T11:10:57.879Z
Learning: Applies to app/ios/**/*.{m,mm,swift} : Document complex native iOS module changes in the PR

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-10-08T20:23:58.783Z
Learnt from: transphorm
Repo: selfxyz/self PR: 1244
File: .github/workflows/mobile-deploy.yml:774-776
Timestamp: 2025-10-08T20:23:58.783Z
Learning: In the selfxyz/self repository, for the mobile deployment workflow (.github/workflows/mobile-deploy.yml):
- iOS builds cache Ruby gems at `app/ios/vendor/bundle`
- Android builds cache Ruby gems at `app/vendor/bundle`
- These paths should be used consistently within their respective build jobs

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-08-02T23:53:45.928Z
Learnt from: transphorm
Repo: selfxyz/self PR: 823
File: app/ios/Self.xcodeproj/project.pbxproj:320-332
Timestamp: 2025-08-02T23:53:45.928Z
Learning: When reviewing autogenerated scripts in Xcode project files (like React Native Firebase's embedded shell scripts), avoid suggesting edits since these are regenerated during pod install and cannot be manually modified by users.

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-09-22T11:10:57.879Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: app/AGENTS.md:0-0
Timestamp: 2025-09-22T11:10:57.879Z
Learning: Applies to app/android/**/*.{kt,java} : Document complex native Android module changes in the PR

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-09-22T11:10:22.019Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: .cursorrules:0-0
Timestamp: 2025-09-22T11:10:22.019Z
Learning: Test, build, and deploy scripts (`yarn test`, `yarn ios`, `yarn test:e2e:ios`, Fastlane, etc.) must be used for automation.

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-08-24T18:54:04.809Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: .cursor/rules/mobile-sdk-migration.mdc:0-0
Timestamp: 2025-08-24T18:54:04.809Z
Learning: Applies to packages/mobile-sdk-alpha/demo/** : Provide an in-SDK lightweight React Native demo under packages/mobile-sdk-alpha/demo/

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-08-24T18:54:04.809Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: .cursor/rules/mobile-sdk-migration.mdc:0-0
Timestamp: 2025-08-24T18:54:04.809Z
Learning: Applies to packages/mobile-sdk-alpha/samples/** : Create sample applications under packages/mobile-sdk-alpha/samples/ (RN demo and web demo)

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-08-24T18:54:04.809Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: .cursor/rules/mobile-sdk-migration.mdc:0-0
Timestamp: 2025-08-24T18:54:04.809Z
Learning: Applies to packages/mobile-sdk-alpha/package.json : Expose a 'test:build' script in the SDK's package.json that runs build, test, types, and lint

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-08-29T15:31:15.924Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: packages/mobile-sdk-alpha/AGENTS.md:0-0
Timestamp: 2025-08-29T15:31:15.924Z
Learning: Applies to packages/mobile-sdk-alpha/{**/*.test.{ts,tsx},**/__tests__/**/*.{ts,tsx}} : Use actual imports from selfxyz/mobile-sdk-alpha in tests

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-08-24T18:54:04.809Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: .cursor/rules/mobile-sdk-migration.mdc:0-0
Timestamp: 2025-08-24T18:54:04.809Z
Learning: Applies to packages/mobile-sdk-alpha/src/artifacts/** : Place artifact and manifest management in packages/mobile-sdk-alpha/src/artifacts/

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-08-29T15:31:15.924Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: packages/mobile-sdk-alpha/AGENTS.md:0-0
Timestamp: 2025-08-29T15:31:15.924Z
Learning: Applies to packages/mobile-sdk-alpha/**/*.{ts,tsx} : Avoid introducing circular dependencies

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-08-29T15:31:15.924Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: packages/mobile-sdk-alpha/AGENTS.md:0-0
Timestamp: 2025-08-29T15:31:15.924Z
Learning: Applies to packages/mobile-sdk-alpha/{**/*.test.{ts,tsx},**/__tests__/**/*.{ts,tsx}} : Do NOT mock selfxyz/mobile-sdk-alpha in tests (avoid jest.mock('selfxyz/mobile-sdk-alpha') and replacing real functions with mocks)

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-08-29T15:31:15.924Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: packages/mobile-sdk-alpha/AGENTS.md:0-0
Timestamp: 2025-08-29T15:31:15.924Z
Learning: Applies to packages/mobile-sdk-alpha/**/*.{ts,tsx} : Follow ESLint TypeScript-specific rules

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-08-29T15:31:15.924Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: packages/mobile-sdk-alpha/AGENTS.md:0-0
Timestamp: 2025-08-29T15:31:15.924Z
Learning: Applies to packages/mobile-sdk-alpha/**/package.json : Ensure package exports are properly configured

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-10-04T05:29:43.587Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-10-04T05:29:43.587Z
Learning: Applies to .github/workflows/**/*.{yml,yaml} : Use the cache-pods composite action for CocoaPods caching in workflows

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
📚 Learning: 2025-09-22T11:10:57.879Z
Learnt from: CR
Repo: selfxyz/self PR: 0
File: app/AGENTS.md:0-0
Timestamp: 2025-09-22T11:10:57.879Z
Learning: For iOS development, install Xcode/CLT and CocoaPods, then run pod install

Applied to files:

  • .github/workflows/mobile-sdk-demo-e2e.yml
⏰ Context from checks skipped due to timeout of 300000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: e2e-ios
🔇 Additional comments (3)
.github/workflows/mobile-sdk-demo-e2e.yml (3)

30-30: Workflow trigger updated correctly to include self-reference.

Adding the workflow file itself to the trigger paths ensures the workflow picks up its own changes, which is a best practice for CI/CD workflows.


288-294: Pod caching leverages the composite action as per guidelines.

The cache-pods composite action is properly configured with the correct paths and lock file reference for the mobile SDK demo iOS build. This maintains build speed benefits while the DerivedData cache is disabled.


295-296: DerivedData caching removal is well-documented.

The comment clearly explains why DerivedData caching was disabled (intermittent build failures due to stale cache), providing helpful context for future maintainers. This is a pragmatic trade-off—sacrificing cached build artifacts for reliability while retaining Pod caching benefits.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@transphorm transphorm merged commit a2c4272 into dev Nov 4, 2025
17 checks passed
@transphorm transphorm deleted the justin/bugfix-mobile-e2e-tests branch November 4, 2025 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants