ci: fix release build broken by missing newline in gradle.properties append - #34
Merged
Merged
Conversation
expo prebuild generates android/gradle.properties without a trailing newline, so appending glued KEPT_UPLOAD_STORE_FILE onto expo.inlineModules.watchedDirectories=[], which made expo autolinking's mirror-kotlin-inline-modules node exec fail JSON.parse at Gradle configure time (and silently dropped the store-file property). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Why the v1.1.6 release failed
expo prebuildgeneratesandroid/gradle.propertieswithout a trailing newline, ending on:The release workflow appends the signing properties with
>>, so the first one glued onto that line:Two failures from one bug:
node ... mirror-kotlin-inline-modules --watched-directories-serialized <property value>at Gradle configure time;JSON.parseof the mangled value makes node exit 1 →Process 'command 'node'' finished with non-zero exit value 1with stderr swallowed by Gradle's ValueSource (runs 30051310924, 30051853156).KEPT_UPLOAD_STORE_FILEnever existed as a property, so even if the build had survived, it would have fallen back to debug signing (the cert-pin step would have caught it).It never reproduced locally because local builds read credentials from
~/.gradle/gradle.propertiesand never append to the generated file.Fix
Emit a newline before the appended block. Diagnosed via
--stacktrace+--infodispatch runs ondebug/release-stacktrace; end-to-end verification build with this fix: run 30052740553.🤖 Generated with Claude Code