feat(ci): add devbox plugin integration testing#1241
Closed
Conversation
Added devbox.json configuration to both E2E-compat and E2E-latest examples using the React Native plugin from segment-integrations/mobile-devtools (main branch). This replaces the archived feat/mobile-devtools-e2e-integration branch with a cleaner implementation based on the latest mobile-devtools plugin. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixed three issues preventing devbox from working with the mobile-devtools plugin: 1. Added missing 'start:app' script to devbox.json in both E2E examples 2. Updated build.gradle to read SDK versions from environment variables (ANDROID_MAX_API, ANDROID_COMPILE_SDK, ANDROID_TARGET_SDK) instead of hardcoding compileSdkVersion=33 3. Added Android hash overrides for platform-tools 37.0.0 to fix Nix build failures This allows the E2E examples to properly use the mobile-devtools React Native plugin for Android SDK management and device configuration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit adds comprehensive CI testing for the mobile-devtools devbox plugin integration in E2E examples. **Workflow Triggers:** 1. **Pull Requests** - Runs on PRs to feat/rn-devbox-plugin branch when: - devbox.json or devbox.lock files change - workflow file itself changes 2. **Weekly Schedule** - Runs every Monday at 10am UTC to catch upstream plugin changes 3. **Manual Trigger** - Can be triggered manually with options to: - Test specific example (E2E-compat, E2E-latest, or all) - Test specific platform (android, ios, or both) 4. **Release Prerequisite** - Can be called from release workflow to ensure plugin compatibility before releases **Test Coverage:** - Validates devbox.json configuration - Tests devbox shell initialization - Verifies Android/iOS tools availability - Tests yarn install - Tests pod install (iOS) - Tests Android builds - Tests iOS builds - Provides comprehensive summary of all results **Architecture:** - Separate jobs for each example × platform combination - Conditional execution based on trigger type and inputs - All jobs must pass for release to proceed - Uses macos-14 runners for iOS (required for Xcode) - Uses ubuntu-latest for Android (faster, cheaper) **Benefits:** - Catches breaking changes in mobile-devtools plugin early - Ensures both examples work with latest plugin - Prevents releasing SDK that's incompatible with devbox workflow - Provides clear feedback on which platform/example fails Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add start:ios and start:android convenience scripts (aliases for start:sim/start:emu) - Add export statements to build scripts to skip unnecessary platform setup - Add README-devbox.md with usage examples and performance tips - Document ANDROID_SKIP_SETUP and IOS_SKIP_SETUP environment variables This fixes the issue where running iOS commands would try to evaluate the Android SDK on macOS (which fails but doesn't block iOS development). Usage: devbox run -e ANDROID_SKIP_SETUP=1 start:ios devbox run -e IOS_SKIP_SETUP=1 start:android Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add dev:ios script: installs deps, pods, builds, and deploys to simulator - Add dev:android script: installs deps, builds, and deploys to emulator - Update README-devbox.md to clarify script purposes - Keep start:sim/start:emu for just launching simulator/emulator Usage: devbox run dev:ios # Full iOS workflow devbox run dev:android # Full Android workflow devbox run start:sim # Just launch simulator (no build) devbox run start:emu # Just launch emulator (no build) This fixes the confusion where start:ios only launched the simulator but didn't build or deploy the app. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds comprehensive CI testing for mobile-devtools devbox plugin integration in E2E examples.
Changes
1. New Workflow:
devbox-plugin-integration.ymlTests the devbox plugin integration across both E2E examples (E2E-compat and E2E-latest) on both platforms (Android and iOS).
Triggers:
feat/rn-devbox-pluginwhen devbox files change2. Test Coverage
Validation Job:
Android Build Tests:
iOS Build Tests:
Summary Job:
3. Benefits
✅ Early Detection - Catches breaking changes in mobile-devtools plugin before they affect developers
✅ Example Parity - Ensures both E2E-compat and E2E-latest work with the plugin
✅ Release Safety - Can be called as prerequisite to prevent releasing incompatible SDK
✅ Clear Feedback - Matrix-style testing shows exactly which example/platform combination fails
✅ Cost Optimization - Only runs iOS tests on macos-14 runners (expensive), uses ubuntu-latest where possible
Testing
Local Testing
CI Testing
This PR will trigger the workflow and validate:
Integration
Use as Release Prerequisite
To use this as a release prerequisite, add to
.github/workflows/release.yml:Manual Testing
Developers can trigger manually via Actions tab:
Architecture Decisions
Separate Jobs per Example/Platform
Conditional Execution
Pure Shell Mode
devbox run --pureto ensure reproducible buildsNode.js Caching
Known Issues
Android SDK Nix Build Warning
Related
feat/rn-devbox-plugin8ea2ade5- fix: update E2E examples for mobile-devtools devbox plugin compatibilityab47da45- feat: add mobile-devtools devbox plugin to E2E examples🤖 Generated with Claude Code