ci: build and upload example app - #5131
Conversation
|
Found potential problems with the pull request:
|
debafe1 to
c942c64
Compare
c942c64 to
587bd01
Compare
| --source-app "$RUNNER_TEMP/cached.app" \ | ||
| --output ../react-native-paper-example.app | ||
|
|
||
| # `ditto` keeps the symlinks and executable bits a plain upload drops. |
There was a problem hiding this comment.
i'm not sure i understand the sentence
There was a problem hiding this comment.
Removed. For context: the iOS build is a .app directory, and upload-artifact doesn't keep file permissions (and resolves symlinks), which breaks the bundle. So we zip it with ditto, which keeps both.
| android: | ||
| name: Android |
There was a problem hiding this comment.
| android: | |
| name: Android | |
| build-android: | |
| name: Build Android |
| path: react-native-paper-example.apk | ||
| key: android-${{ steps.fingerprint.outputs.fingerprint }} | ||
|
|
||
| # Repacking shells out to `apktool`, so this cannot be gated on the cache. |
There was a problem hiding this comment.
| # Repacking shells out to `apktool`, so this cannot be gated on the cache. |
There was a problem hiding this comment.
Removed the comment
| distribution: temurin | ||
| java-version: 17 | ||
|
|
||
| # KSP in `expo-updates` runs out of the 512m metaspace that `expo prebuild` sets. |
There was a problem hiding this comment.
not sure what KSP and "metaspace" mean
There was a problem hiding this comment.
KSP (Kotlin Symbol Processing) is a code generation step expo-updates runs during the Android build. Metaspace is the part of JVM memory that holds class metadata. The gradle.properties generated by expo prebuild caps it at 512m, and the build ran out of it, so we raise it to 1g with -XX:MaxMetaspaceSize=1g. I removed the comment.
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 | ||
| with: | ||
| path: react-native-paper-example.apk | ||
| key: android-${{ steps.fingerprint.outputs.fingerprint }} |
There was a problem hiding this comment.
also add the workflow file to cache so we trigger rebuild if the workflow changes
There was a problem hiding this comment.
Fixed, thanks for pointing it out.
| paths-ignore: | ||
| - docs/** | ||
| - '**/*.md' | ||
| pull_request: | ||
| paths-ignore: | ||
| - docs/** | ||
| - '**/*.md' |
There was a problem hiding this comment.
lets add tests, and other workflow files to ignore as well
| ios: | ||
| name: iOS |
There was a problem hiding this comment.
| ios: | |
| name: iOS | |
| build-ios: | |
| name: Build iOS |
Motivation
Currently, to verify any change, we have to run locally the example app.
This introduces a PR preview generated example app that is uploaded in GitHub artifacts. This allows in the future for manual or agentic QA to reuse those generated apps.
Related issue
No related issue.
Screenshots / Videos
N/A
Test plan
Tested on my fork, both apps are working correctly.