build: split CI workflows #1
Workflow file for this run
This file contains 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
name: iOS | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
build: | |
runs-on: macos-14 | |
env: | |
TURBO_CACHE_DIR: .turbo/ios | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup JS | |
uses: ./.github/actions/setup | |
- name: Setup Rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: aarch64-apple-ios,aarch64-apple-ios-sim | |
- name: Write .xcode.env.local | |
run: | | |
# Work around for https://github.com/facebook/react-native/issues/35657 | |
echo "export NODE_BINARY=$(which node)" >> example/ios/.xcode.env.local | |
cat example/ios/.xcode.env.local | |
- name: Generate | |
run: yarn ubrn:clean && yarn ubrn:checkout && yarn ubrn:ios | |
# - name: Cache turborepo for iOS | |
# uses: actions/cache@v4 | |
# with: | |
# path: ${{ env.TURBO_CACHE_DIR }} | |
# key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }} | |
# restore-keys: | | |
# ${{ runner.os }}-turborepo-ios- | |
# - name: Check turborepo cache for iOS | |
# run: | | |
# TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:ios').cache.status") | |
# if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then | |
# echo "turbo_cache_hit=1" >> $GITHUB_ENV | |
# fi | |
# - name: Cache cocoapods | |
# if: env.turbo_cache_hit != 1 | |
# id: cocoapods-cache | |
# uses: actions/cache@v4 | |
# with: | |
# path: | | |
# **/ios/Pods | |
# key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }} | |
# restore-keys: | | |
# ${{ runner.os }}-cocoapods- | |
# - name: Install cocoapods | |
# if: env.turbo_cache_hit != 1 && steps.cocoapods-cache.outputs.cache-hit != 'true' | |
# run: | | |
# cd example/ios | |
# # Work around '[!] CocoaPods could not find compatible versions for pod "hermes-engine"' | |
# pod update hermes-engine --no-repo-update | |
# pod install | |
# env: | |
# NO_FLIPPER: 1 | |
- name: Build example for iOS | |
run: | | |
yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" |