Skip to content

[reference][native WIP] fix(native): pin iOS deployment target 15.5 + split smoke jobs (ERY-108)#600

Closed
SheetMetalConnect wants to merge 4 commits into
engineer/ery-99-native-smokefrom
engineer/ery-108-ios-pod-fix
Closed

[reference][native WIP] fix(native): pin iOS deployment target 15.5 + split smoke jobs (ERY-108)#600
SheetMetalConnect wants to merge 4 commits into
engineer/ery-99-native-smokefrom
engineer/ery-108-ios-pod-fix

Conversation

@SheetMetalConnect
Copy link
Copy Markdown
Owner

Why

First macOS native smoke run (26370608416) surfaced two blockers: iOS pod install failed (GoogleMLKit/BarcodeScanning 7.0.0 needs iOS 15.5+, Capacitor's default Podfile pins 14.0) and the single-job layout let the iOS failure skip all Android steps.

What changed

  • iOS deployment target pinned to 15.5. scripts/ios-init.sh adds the iOS platform before building the web bundle (so cap add ios skips the premature pod install), then an idempotent patch_ios_deployment_target helper pins 15.5 in the Podfile platform line, a post_install floor across all transitive Pods targets, and the App.xcodeproj deployment target, before cap sync runs pod install against the corrected Podfile.
  • Split smoke jobs. native-build-smoke.yml now has independent ios-smoke (macos-15) and android-smoke (ubuntu-latest) jobs with no needs edge; the Android release assemble is if: always() so both APK results are always captured.

Verification

  • Patch logic verified locally against the extracted Capacitor 7 ios-pods-template: Podfile → 15.5, all four pbxproj configs → 15.5, ruby -c clean, bash -n clean. The native toolchain is unavailable on the engineer host, so pod resolution + simulator build are proven by this PR's CI run.

Re-run evidence to be recorded in docs/2026-05-24-ery-71-native-packaging-validation.md (ERY-108 section) once this lane completes. Advances ERY-81.

🤖 Generated with Claude Code

…Y-108)

cap add ios only runs pod install (via cap sync) when dist/ exists, so
add the iOS platform before building the web bundle to skip the premature
pod install that resolved against the default platform :ios, '14.0' and
failed on GoogleMLKit/BarcodeScanning 7.0.0 (needs iOS 15.5+). A new
idempotent patch_ios_deployment_target helper then pins 15.5 in the
Podfile platform line, a post_install floor, and the App.xcodeproj target
before cap sync runs pod install against the corrected Podfile.

Split native-build-smoke.yml into independent ios-smoke (macos-15) and
android-smoke (ubuntu-latest) jobs with no needs edge, and gate the
Android release assemble with if: always(), so one failure no longer
masks the other's evidence.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Paperclip <noreply@paperclip.ing>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 24, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
eryxon-flow Ready Ready Preview, Comment May 24, 2026 7:56pm

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 24, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 77c0f9b7-3f5d-47fe-9e34-274425e5007d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch engineer/ery-108-ios-pod-fix

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.

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 24, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
eryxon-flow-website f7a567c Commit Preview URL

Branch Preview URL
May 24 2026, 07:56 PM

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 01ffbcbc0c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

run: |
set -euo pipefail
mkdir -p artifacts
npm run android:assemble:debug 2>&1 | tee artifacts/android-debug.log
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Install Node deps before Android assemble commands

After splitting into android-smoke, this job no longer runs npm ci/npm install, but it still invokes npm run android:assemble:* (which calls npm run build and needs local devDependencies like vite). On a fresh GitHub runner, these steps fail before any APK assemble, so the Android smoke lane is effectively broken and won’t provide the intended debug/release evidence.

Useful? React with 👍 / 👎.

…RY-108)

Run 26370807000 proved the iOS 15.5 pin resolves pod install and that the
job split decouples Android evidence from iOS. Two follow-ups:

- The independent android-smoke job had no `npm ci`, so `npm run build`
  failed with `vite: not found` (the old single job inherited node_modules
  from `ios:init`). Add an explicit install step.
- Add a concurrency group with cancel-in-progress so iterating doesn't burn
  parallel macOS iOS builds.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Run 26370892728 cleared the vite error (npm ci) and progressed into the
real Gradle build, which then failed at
:capacitor-android:compileDebugJavaWithJavac with "invalid source
release: 21". Capacitor 7's android module compiles with source/target
21, so the Android smoke job must run on JDK 21, not 17.

iOS unchanged — run 26370807000 was fully green (pod install resolves +
simulator build succeeds).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Run 26370991082 passes all four checks: iOS pod install + simulator
build, Android debug + release APKs (JDK 21). Acceptance met; ERY-81
native smoke unblocked.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Paperclip <noreply@paperclip.ing>
@SheetMetalConnect SheetMetalConnect changed the title fix(native): pin iOS deployment target 15.5 + split smoke jobs (ERY-108) [reference][native WIP] fix(native): pin iOS deployment target 15.5 + split smoke jobs (ERY-108) May 25, 2026
@SheetMetalConnect
Copy link
Copy Markdown
Owner Author

Native iOS/Android CI work — intentionally NOT part of stable v0.6 (#603). Native stays on the roadmap / WIP track. Six commits on engineer/ery-108-ios-pod-fix (ERY-108 + ERY-99 smoke lanes) are not in v0.6. Kept open as reference for the native track; not closing, not merging.

@SheetMetalConnect
Copy link
Copy Markdown
Owner Author

Native mobile deferred per board directive. Closing.

@SheetMetalConnect SheetMetalConnect deleted the engineer/ery-108-ios-pod-fix branch May 31, 2026 11:26
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.

1 participant