Skip to content

Comments

[pull] main from expo:main#614

Merged
pull[bot] merged 4 commits intocode:mainfrom
expo:main
Feb 21, 2026
Merged

[pull] main from expo:main#614
pull[bot] merged 4 commits intocode:mainfrom
expo:main

Conversation

@pull
Copy link

@pull pull bot commented Feb 21, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

# Why

This is a base for the following PRs that introduce the implementation
of ccache for iOS and Android builds:
#43274 
#43285
It adds a new cache to `expo-caches`, which will be used there. 

# How

Adds a new `Restore ccache` step to `expo-caches`. 
The key for this cache consists of:
- `yarn.lock` - to follow changes in `node_modules`
- `packages/**/*.cpp`, `packages/**/*.h`, `packages/**/*.mm`,
`packages/**/*.m` - these files are cached by ccache

A `restore-key` was added because the hash doesn't have to match exactly
and the cache can be partially reused.

# Test Plan

Green CI, tested on a stacked PR.
# Why

This PR introduces ccache for Android builds. It speeds up the most
demanding task for Android builds, which is cpp compilation.

# Results

- **Hit rate: 87%** - that's the percentage of c++ files which didn't
have to be compiled.
- **Build time drop:** My tests showed a **4-minute** reduction in build
time. This time varies based on runner performance, so the most precise
numbers will be visible after some time in our performance metrics.

# How

- Downloads ccache.
- Replaces the default compiler with ccache.
- Adds custom configuration for ccache, which is described in the
comments.

# Test Plan
Green CI, tested on a stacked PR.
# Why

This PR introduces ccache for iOS builds. It speeds up the compilation
of .cpp, .mm, and .m files.

# Results

- **Hit rate for subsequent clean builds: ~100% (2436 files)** the
percentage of files that didn't have to be compiled.
- **Drop in build time:** my tests showed around a **10-minute**
reduction. This time varies based on runner performance, so more precise
numbers will be available later in performance metrics.

# How
- Downloads ccache.
 - Forces Xcode to use ccache for compilation.
- Adds custom configuration for ccache, described in the YAML file
comments.

# Test Plan

Green CI, tested on a stacked PR.
# Why
Changes to the following packages:
- create-expo
- create-expo-nightly
- create-expo-module
- @expo/cli 

shouldn't trigger the test suite 

# How
Adds new negations to paths which trigger the workflow and to
`common-paths` in `Detect build-relevant platform changes`

# Test Plan
Green CI
@pull pull bot locked and limited conversation to collaborators Feb 21, 2026
@pull pull bot added the ⤵️ pull label Feb 21, 2026
@pull pull bot merged commit 4772866 into code:main Feb 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant