build: rebundle the example when library sources change - #10
Merged
Merged
Conversation
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.
Description
assembleReleaseembeds the JS bundle through the React Native Gradle plugin'screateBundle<Variant>JsAndAssetstask. That task's source input tree is rooted at the approot, which isexample/(BundleHermesCTask.kt). In this hoisted pnpm workspace the library sources live at the repository root, so a change undersrc/leaves the taskUP-TO-DATEand the previous bundle ships.The Android e2e check builds the release variant, so it could pass against stale library code; the worklets crash fix in #9 first looked green for exactly this reason.
Solution
Register
src/as an additional input of the bundle tasks in the examplebuild.gradle, with relative path sensitivity so the cache key does not depend on the checkout location. The plugin's own tree still covers the example sources.Test plan
./gradlew :app:createBundleReleaseJsAndAssetsfromexample/android, appending a comment tosrc/index.tsxbetween runs:UP-TO-DATEafter the library change.UP-TO-DATEwhen nothing changed.