feat: add ios-expo reusable workflow for Expo apps#1
Open
morepriyam wants to merge 1 commit intomieweb:mainfrom
Open
feat: add ios-expo reusable workflow for Expo apps#1morepriyam wants to merge 1 commit intomieweb:mainfrom
morepriyam wants to merge 1 commit intomieweb:mainfrom
Conversation
Mirrors the slim ios-meteor / setup-meteor pattern for Expo apps.
- Add setup-expo composite (checkout + Xcode + Node + JS deps; supports
npm/yarn/pnpm and a working_directory for monorepos).
- Add .github/workflows/ios-expo.yml: setup-expo → optional pre_build_script
→ expo prebuild → mieweb/actions/ios@v1 with run_pod_install=true.
- ios_build_dir is computed from working_directory ('ios' at repo root, or
'<working_directory>/ios' for monorepos) so the ios action's auto-discovery
finds the prebuilt workspace.
- README: document setup-expo and ios-expo.yml alongside the meteor entries;
update the "Xcode is selected automatically" note to cover both stacks.
0a2a007 to
63a0a3e
Compare
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
.github/workflows/ios-expo.yml— an Expo counterpart to the existingios-meteor.yml. Wraps theios@v1composite action with Expo-specificpre-steps so callers can build & ship to TestFlight with a single
uses:+secrets: inherit.Pipeline: Xcode → Node → install JS deps →
expo prebuild→ CocoaPods →Fastlane → TestFlight.
Why
ios-meteor.ymlcovers the Meteor/Cordova path. Expo apps need differentpre-steps (
expo prebuild, JS package manager, no Meteor/Cordova). Today anExpo caller would have to duplicate that boilerplate in their own workflow
and map every
APPLE_*/MATCH_*secret by hand. With this workflow theyget the same one-liner experience the Meteor side already has.
Inputs (defaults shown)
app_identifierapp.json/ Info.plistxcode_path/Applications/Xcode_26.3.appios-meteor.ymlnode_version20package_managernpmnpm|yarn|pnpmworking_directory.package.jsonlives)signing_modematchmatch|secretsupload_to_testflighttrueios_build_diris computed automatically fromworking_directory(Expoprebuild lands the Xcode workspace in
<working_directory>/ios, not thedefault
ios-build/the composite expects for Cordova).Scope
Expo only. The workflow assumes
expois in the caller'sdependencies. For bare React Native projects without
expo, callers shouldkeep using the
ioscomposite directly. The README is explicit on this.Smoke test
Tested on a fork against a throwaway minimal Expo project before opening
this PR. Run: https://github.com/morepriyam/sharedactions/actions/runs/25014327554
Xcode_26.3.app)npm ci)expo prebuild --clean --platform iospod installAPPLE_*secrets)The Fastlane step fails at
app_store_connect_api_key.rb:43because thefork doesn't carry org-level
APPLE_API_KEY_*secrets. That step is theexisting
ios@v1composite already exercised byios-meteor.yml, so thenew code added by this PR (everything before Fastlane) is end-to-end
verified on a real macOS runner.
Total runtime: 2m16s.
Test plan
v1.xonce merged (or movev1forward, matching theexisting convention)
step also lands green end-to-end