Cache React Native iOS builds with sccache - #638
Draft
kieran-osgood-shopify wants to merge 1 commit into
Draft
Conversation
This was referenced Aug 13, 2026
Contributor
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
11 tasks
11 tasks
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-9-ccache
branch
from
August 13, 2026 09:22
1780924 to
e8b55e9
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-8-derived-data-cache
branch
from
August 13, 2026 09:22
ae182ae to
1dd7a03
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-9-ccache
branch
from
August 13, 2026 11:36
e8b55e9 to
af6792e
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-8-derived-data-cache
branch
from
August 13, 2026 11:36
1dd7a03 to
4f7cff0
Compare
Contributor
|
yo, just browsing.. Should we use sccache to match up with what we run locally? |
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-8-derived-data-cache
branch
from
August 14, 2026 12:37
4f7cff0 to
53ccdf5
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-9-ccache
branch
from
August 14, 2026 12:37
af6792e to
f119714
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-8-derived-data-cache
branch
from
August 14, 2026 16:32
53ccdf5 to
265cbfd
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-9-ccache
branch
2 times, most recently
from
August 17, 2026 11:00
052fcaf to
e1a61a7
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-9-ccache
branch
from
August 17, 2026 12:03
e1a61a7 to
3287d81
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-9-ccache
branch
from
August 17, 2026 12:30
3287d81 to
48964fb
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-8-derived-data-cache
branch
from
August 17, 2026 15:50
265cbfd to
ee6e3b8
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-9-ccache
branch
from
August 17, 2026 15:50
48964fb to
9e74331
Compare
kieran-osgood-shopify
changed the base branch from
kieran-osgood/macos-ci-8-derived-data-cache
to
graphite-base/638
August 18, 2026 16:23
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-9-ccache
branch
from
August 18, 2026 17:03
9e74331 to
c34a998
Compare
kieran-osgood-shopify
force-pushed
the
graphite-base/638
branch
from
August 18, 2026 17:03
ee6e3b8 to
ae6a0b4
Compare
graphite-app
Bot
changed the base branch from
graphite-base/638
to
kieran-osgood/macos-ci-8-derived-data-cache
August 18, 2026 17:03
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-9-ccache
branch
from
August 18, 2026 17:03
c34a998 to
bf946d5
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-9-ccache
branch
from
August 18, 2026 18:26
bf946d5 to
0604d45
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-8-derived-data-cache
branch
from
August 18, 2026 18:26
ae6a0b4 to
e0b1a54
Compare
Assisted-By: devx/669fe7a5-1428-4dee-a8b4-995403d59a5c
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-9-ccache
branch
from
August 19, 2026 14:09
0604d45 to
c658ce0
Compare
kieran-osgood-shopify
force-pushed
the
kieran-osgood/macos-ci-8-derived-data-cache
branch
from
August 19, 2026 14:09
e0b1a54 to
ccf2e33
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.

Stack context
Part of the macOS CI migration and speed-up tracked in
shop/issues-checkout-kit#1211, undershop/issues-checkout-kit#1202.What?
sccachelauncher used by both sample build scripts.C_COMPILER_LAUNCHERintegration instead of treatingsccache clangas an executable path.sccachedaemon before invoking Xcode.Why?
Shopify no longer permits
ccache.sccachesupports Xcode launchers, but deliberately bypasses Clang header-module invocations such as React Native's-fmodulescalls. Following the complete upstream Xcode recipe makes every C, C++, and assembler invocation in these builds cacheable without wrappers or a banned dependency.The integration remains opt-in locally with
SCCACHE_ENABLED=1; Bitrise enables it for the two React Native iOS workflows. Android's existingsccacheintegration is unchanged.Local performance
Each warm measurement deleted DerivedData while retaining only
SCCACHE_DIR, forcing Xcode to reconstruct the build products from compiler-cache entries.Both cold runs had zero non-cacheable compiler calls, cache errors, or compilation failures.
Bitrise performance
The two affected workflows were first run cold and warm on separate Bitrise macOS machines. The warm runs restored an exact cache-key match. After moving key generation into shared step bundles, commit
48964fb3was also run against the previous commit's cache: both workflows missed the new exact key, restored the branch-prefix fallback, and saved the cache under the newly generated exact key.All warm workflows passed with zero misses, non-cacheable calls, or cache errors.
Verification
Build SucceededTest Succeededdev style: passed--deployment: passedbitrise validate --config=e2e/bitrise.yml: validgit diff --check: passed