| #
9558d768 |
| 08-Jun-2023 |
Kudo Chien <[email protected]> |
[ci] use ubuntu-22.04 runner (#22797)
# Why
use the latest ubuntu runner and make ci more stable
# How
update to ubuntu-22.04 runner
|
| #
9858e387 |
| 03-Aug-2022 |
Bartłomiej Klocek <[email protected]> |
[ci] Disable shell-app workflows on main (#18460)
|
| #
96634eea |
| 26-Jun-2022 |
Kudo Chien <[email protected]> |
[ios] Update react-native to 0.69 for expo go (#17629)
# Why
upgrade react-native for sdk 46
# How
- update our react-native fork
- [android] add hermes-engine prebuilding. the main change
[ios] Update react-native to 0.69 for expo go (#17629)
# Why
upgrade react-native for sdk 46
# How
- update our react-native fork
- [android] add hermes-engine prebuilding. the main change is [here](https://github.com/expo/react-native/commit/8bb810c9860fc1e49d9f55bb3929ad0eb534f441). because in expo-go we are building react-native from source. in 0.69 it also means to build hermes from source. that will make our ci time more difficult.
- [expo][android] add ReactNativeHostWrapper for 0.69 because `com.facebook.react.devsupport.interfaces.RedBoxHandler` package renaming.
- update some expo modules to support 0.69
**TODO**
`et update-rn` is not included in this pr. i will do it later and commit directly. because that includes mass changes and makes review very difficult.
# Test Plan
update react-native, react, in expo/expo and test NCL with android/ios unversioned expo go
Co-authored-by: Tomasz Sapeta <[email protected]>
show more ...
|
| #
1ddc371b |
| 12-May-2022 |
Kudo Chien <[email protected]> |
[ci] add matrix support to slack webhooks (#17484)
# Why
fix slack bot job name error after we introduced matrix in #17162
# How
according [the document](https://action-slack.netlify.app/fi
[ci] add matrix support to slack webhooks (#17484)
# Why
fix slack bot job name error after we introduced matrix in #17162
# How
according [the document](https://action-slack.netlify.app/fields), add the `MATRIX_CONTEXT`
show more ...
|
| #
58f238aa |
| 04-May-2022 |
Bartosz Kaszubowski <[email protected]> |
[github] update Android API version for AVDs on CI (#17278)
|
| #
fc12ed2d |
| 28-Apr-2022 |
Bartosz Kaszubowski <[email protected]> |
[github] add local composite actions for CI, refactor workflows (#17162)
|
| #
6def53e4 |
| 15-Apr-2022 |
Bartosz Kaszubowski <[email protected]> |
[github] fix docs deploy and other AWS related workflows (#17077)
|
| #
f250b346 |
| 15-Apr-2022 |
Bartosz Kaszubowski <[email protected]> |
[github] always use `ubuntu-20.04` in workflows (#17051)
|
| #
4af7344c |
| 12-Apr-2022 |
Bartosz Kaszubowski <[email protected]> |
[github] update most of GitHub actions used in workflows (#17003)
|
| #
d566f199 |
| 06-Apr-2022 |
Kudo Chien <[email protected]> |
[android][ios] Upgrade expo go to react-native 0.68 (#16752)
# Why
upgrade for sdk 45
# How
- upgrade our react-native fork to 0.68 based: https://github.com/expo/react-native/tree/sdk-45
[android][ios] Upgrade expo go to react-native 0.68 (#16752)
# Why
upgrade for sdk 45
# How
- upgrade our react-native fork to 0.68 based: https://github.com/expo/react-native/tree/sdk-45
- migrate android/ios projects to 0.68
- [android] bump `targetSdkVersion` and `compileSdkVersion` to 31 (aligned with react-native 0.68)
- [tools] update codegen customization in `update-rn` script
- [tools] update versioning scripts
- [android] replace our customized `NDK_ABI_FILTERS` with official supported `reactNativeArchitectures` gradle property
- [android] use jdk 11
that is a huge pr because of changes from `et update-rn`. recommend to review this pr by commits.
most `add-sdk` problems on 0.68 are fixed. there are still an issue on android. i'll address in another pr.
- expo-av CMakeLists.txt versioning
# Test Plan
- unversoned android expo-go + ncl
- unversoned ios expo-go + ncl
- `et add-sdk -p ios -s 45.0.0` + versioned ios sdk 45 expo-go + ncl
- `et add-sdk -p android -s 45.0.0` + versioned android sdk 45 expo-go + ncl (should commented out expo-av in `ExperiencePackagePicker.kt`
show more ...
|
| #
2ed31047 |
| 24-Feb-2022 |
Kudo Chien <[email protected]> |
[android][ios] Upgrade react-native to 0.67.2 in Expo Go (#16400)
# Why
upgrade for sdk 45
# How
## upgrade react native fork
code in https://github.com/expo/react-native/tree/sdk-45
ba
[android][ios] Upgrade react-native to 0.67.2 in Expo Go (#16400)
# Why
upgrade for sdk 45
# How
## upgrade react native fork
code in https://github.com/expo/react-native/tree/sdk-45
basically cherry pick most necessary commits from sdk-44 branch but not these two:
1. https://github.com/expo/react-native/commit/125b36ac6d76e702bea4d7c41a8a402d68cdb1f1: because ExpoKit is already deprecated.
2. https://github.com/expo/react-native/commit/82d3ff5218cc576b5c7ea44c7adbf8b5aa5d985c: [use the official way to set metro server address](https://github.com/facebook/react-native/commit/e2b5b6504cb4dee8f2ec67f1d3a410801e1ca09a)
## migrate project setup
basically reference from: https://react-native-community.github.io/upgrade-helper/?from=0.64.2&to=0.67.2
## other build errors or launch errors
just to deal with these mess one by one.
# Test Plan
- [android] unversioned expo-go build + launch + load unversioned NCL
- [ios] unversioned expo-go build + launch + load unversioned NCL
show more ...
|
| #
6c3ce96f |
| 09-Jan-2022 |
Tomasz Sapeta <[email protected]> |
[ci] Update Slack channels in workflows [skip ci]
|
| #
d49e7070 |
| 05-Aug-2021 |
Kudo Chien <[email protected]> |
[react-native] Upgrade to 0.64.2 (#13793)
# Why
Upgrade react-native to 0.64.2 for SDK 43
# How
- [x] Fork `react-native-lab/react-native` from `react-native` 0.64-stable branch and cherry-
[react-native] Upgrade to 0.64.2 (#13793)
# Why
Upgrade react-native to 0.64.2 for SDK 43
# How
- [x] Fork `react-native-lab/react-native` from `react-native` 0.64-stable branch and cherry-pick necessary patches from `exp-latest`
- [x] Bump package versions:
- react "16.13.1" → "17.0.1"
- react-dom "16.13.1" → "17.0.1"
- react-native "0.63.2" → "0.64.2"
- react-test-renderer "~16.13.1" → "~17.0.1"
- @types/react-native "~0.63.2" → "~0.64.12"
- @babel/core "^7.0.0" → "^7.12.9"
- metro-react-native-babel-preset "~0.59.0" → "~0.64.0"
- jest "^25.2.0" → "^26.6.3"
- [x] bare-expo: sync project setup from [upgrade helper](https://react-native-community.github.io/upgrade-helper/?from=0.63.2&to=0.64.2)
- [x] Fix JS Error parsing error from [upstream change](https://github.com/facebook/react-native/commit/9edfc43aad2f68be8a37)
- [x] Expo Go for iOS:
- Folly.podspec -> RCT-Folly.podspec for old SDKs
- Upgrade reanimated vendoring script to support RN 0.64
- Update reanimated install binding with RCTJSIExecutorRuntimeInstaller
- [x] Expo Go for Android:
- Fix hanging from loading bundle which ReactRootView not attached to ReactInstanceManager from [upstream change](https://github.com/facebook/react-native/commit/2c896d35782cd04c873aefadc947447cc30a7f60)
Could use this command to make review easier:
`git diff master...HEAD -- . ':!android/ReactCommon' ':!android/ReactAndroid/src'`
# Test Plan
- Bare Expo
- [x] iOS runs
- [x] Android runs
- [x] Web runs
- Expo Go with NCL
- [x] unversioned QA on iOS
- [x] unversioned QA on Android
- [x] Could load SDK 42 project on iOS
- [x] Could load SDK 42 project on Android
- Shell app
- [x] iOS build passed
- [x] Android build passed
show more ...
|
| #
2cfc8c5a |
| 18-Jun-2021 |
Jakub <[email protected]> |
[setup] Update Android setup scripts & docs (#13108)
|
| #
6d31ade7 |
| 27-May-2021 |
Tomasz Sapeta <[email protected]> |
[ci] Add concurrency settings to all suitable workflows
|
| #
8af1393b |
| 24-May-2021 |
Charlie Cruzan <[email protected]> |
[gha] remove install awscli from android shell app workflow (#13025)
|
| #
f12bf82b |
| 18-May-2021 |
Tomasz Sapeta <[email protected]> |
[skip ci] Use commit message instead of sha in slack notifications
|
| #
ea3c2577 |
| 13-Feb-2021 |
Tomasz Sapeta <[email protected]> |
[gha] Update cache action to v2 in all workflows
|
| #
760af2c6 |
| 30-Nov-2020 |
Stanisław Chmiela <[email protected]> |
[android] Fix no .so hotfix by moving build artifacts clean out of packages building process (#11163)
# Why
`react-native` AAR in Android shell apps built for this SDK apparently lack native `.so
[android] Fix no .so hotfix by moving build artifacts clean out of packages building process (#11163)
# Why
`react-native` AAR in Android shell apps built for this SDK apparently lack native `.so` libraries. The problem manifest itself by native crash upon opening a standalone SDK40 app:
```
AndroidRuntime: FATAL EXCEPTION: create_react_context
AndroidRuntime: Process: xyz.bront.hourpower, PID: 22569
AndroidRuntime: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so result: 0
AndroidRuntime: at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:32)
AndroidRuntime: at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:17)
AndroidRuntime: at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:19)
AndroidRuntime: at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:1)
AndroidRuntime: at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.java:1)
AndroidRuntime: at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java:1)
AndroidRuntime: at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:10)
AndroidRuntime: at java.lang.Thread.run(Thread.java:923)
ActivityTaskManager: Force finishing activity xyz.bront.hourpower/host.exp.exponent.MainActivity
```
# How
Remembering the implementation of [`getDefaultJSExecutorFactory`](https://github.com/expo/expo/blob/8370ab335404aed4f9910ff1ca7360bb8b15f0fd/android/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java#L292-L329) I knew the issue must be laying in missing `libjscexecutor.so`. To verify that I inspected SDK40 `.apk` with Android Studio and that some `.so` files are missing. For comparison SDK40 and SDK39 APKs:
<img width="1371" alt="Zrzut ekranu 2020-11-30 o 11 25 48" src="https://user-images.githubusercontent.com/1151041/100616037-c9a1fc00-3318-11eb-91a3-5d647d6945df.png">
Then I looked into `react-native` AAR to verify it it contains the native libraries or not (to see whether the problem lays in the process of building the app or in the process of building the AAR). The AAR did not contain required `.so` files, so the problem must have laid in `et android-build-packages` process.
I rebuilt the packages on my computer and confirmed `.so` files are not put into AARs. What struck me in the process were double entries for `expoview` and `ReactAndroid`:
```
✅ Finished building ReactAndroid
✅ Finished building ReactAndroid
✅ Finished building unimodules-core
✅ Finished building unimodules-react-native-adapter
...
✅ Finished building unimodules-task-manager-interface
✅ Finished building expoview
✅ Finished building expoview
Copying newly built packages...
```
Looking into `AndroidBuildPackages.ts` I noticed there's a hacky workaround for this specific bug in place already (h/t @esamelson):
https://github.com/expo/expo/blob/cc0bde12338c7acd13f3502404c8aaa64b04a680/tools/expotools/src/commands/AndroidBuildPackages.ts#L223-L232
~Via trial and error I tried building the AARs some different ways (using `./gradlew` in `android`, before cleaning, after cleaning, upgrading Gradle), but the only and most reliable scenario for building AARs with `.so` files included was the solution implemented in this PR.~ — this was referring to https://github.com/expo/expo/pull/11163/commits/100052fc738de1d61df1feb553a87d4641695e7d. Thanks to @wkozyra95's insight I've changed the solution to a different, faster and cleaner one:
It seems [this change](https://github.com/expo/expo/commit/6bce5f2deab78c76fa30710e9257102bd270e442#diff-79ae592b37eb104acd1b5162a3383f8e15e8510a1400c8138952aae6aa55dacd) has reintroduced this problem to Android shell app building process. I have reverted its intervention by moving `:clean` to GitHub workflow file. This not only makes the solution faster (by not running `uploadArchives` twice for **all** libraries, just for the problematic ones), but also cleaner (“why would `et abp` clean my build directories?”).
# Test Plan
- [x] Android shell app is built and prebuilt React Native AAR contains expected `.so` files ([~job~](https://github.com/expo/expo/runs/1474131564?check_suite_focus=true), [job](https://github.com/expo/expo/runs/1475286887))
- [x] ~Android shell app is built and prebuilt `expoview` AAR contains expected `.so` files ([job](https://github.com/expo/expo/runs/1474131564?check_suite_focus=true))~ (lack of them was caused by another bug, fixed in https://github.com/expo/expo/pull/11166)
show more ...
|
| #
98916911 |
| 30-Oct-2020 |
Nick Novitski <[email protected]> |
[ci] Don't use deprecated commands
|
| #
6bce5f2d |
| 24-Sep-2020 |
Stanisław Chmiela <[email protected]> |
[android] Make local Maven repo obsolete (#10069)
# Why
A splendid idea by @tsapeta, that since we no longer publish `expokit` and there's no other place (apart from Turtle shell app) where we us
[android] Make local Maven repo obsolete (#10069)
# Why
A splendid idea by @tsapeta, that since we no longer publish `expokit` and there's no other place (apart from Turtle shell app) where we use prebuilt AARs of unimodules (_yet?_) we could only build them when building a shell app, removing them from the repo.
From my experience this also removes confusion caused to Android Studio where while developing `expokit` it would sometimes match a class against two different sources: `ReactAndroid` project and `com.facebook.react:react-native:XX.X.X` (XX.X.X – last SDK).
# How
- added `:$project:clean` after `:$project:uploadArchives` to `expotools` so that once the CI builds the shell app tarball contents of `packages/*/android/build` don't end up there (they aren't used)
- configured the CI job to `android-build-packages` instead of only checking them. For this I had to
- install JS dependencies inside the repo so that `../node_modules/react-native-unimodules/…` is resolvable in `build.gradle` and unimodules are autolinked
- install NDK as we will know actually compile the packages, not only check the presence of the files
- since I removed last usage of `check-android-packages` I have removed the command too
# Test Plan
I have tested this change on Turtle staging.
show more ...
|
| #
4a4abae3 |
| 24-Sep-2020 |
Stanisław Chmiela <[email protected]> |
[ci] Add workflow dispatch command for iOS shell app with upload job (#10101)
# Why
iOS shell app job is only triggered on workflow dispatch, i.e. when someone decides to build an iOS shell app a
[ci] Add workflow dispatch command for iOS shell app with upload job (#10101)
# Why
iOS shell app job is only triggered on workflow dispatch, i.e. when someone decides to build an iOS shell app and on schedule. For developer-triggered runs we should always upload the shell app to S3 (as we do when building an Android shell app).
# How
Changed the `if` to look for `workflow_dispatch` instead of a workflow input.
# Test Plan
I'll test this in a sec on `sdk-39` branch.
show more ...
|
| #
baacd081 |
| 07-Sep-2020 |
Stanisław Chmiela <[email protected]> |
[ci] Move awscli install to when it's actually used (#10067)
# Why
By moving installation of build-irrelevant parts to after it we make the build fail faster if it will fail.
# How
Moved `a
[ci] Move awscli install to when it's actually used (#10067)
# Why
By moving installation of build-irrelevant parts to after it we make the build fail faster if it will fail.
# How
Moved `apt-get install awscli` to when it's actually used.
# Test Plan
CI should pass.
show more ...
|
| #
aeca10c4 |
| 17-Aug-2020 |
Tomasz Sapeta <[email protected]> |
[ci] Migrate building Android shell apps to GitHub Actions (#9705)
# Why
A job that builds Android's shell app was still only on CircleCI. This PR would make CircleCI useless in the upcoming rele
[ci] Migrate building Android shell apps to GitHub Actions (#9705)
# Why
A job that builds Android's shell app was still only on CircleCI. This PR would make CircleCI useless in the upcoming release.
# How
- Migrated `shell_app_android_build` job from CircleCI to `shell-app-android` on GitHub Actions
- Made workflow development easier — it will be triggered on push events once the workflow config changes.
- `et check-android-packages` is skipped on non-dispatched events as it would almost always fail on scheduled events (we doesn't rebuild Android packages on every change).
- `./buildAndroidTarballLocally.sh` now runs without conditions and the resulted tarball is set as a workflow artifact.
- Upload to S3 is now run only on dispatched events — there is no need to clutter our S3 with the tarball generated on scheduled events. We can always download the tarball from artifacts.
- Slack notification is now more informative and doesn't say `triggered by nicknovitski` (as it is on iOS shell app job) on scheduled events. The notification won't be sent on push events (only dispatched and scheduled events).
# Test Plan
See https://github.com/expo/expo/pull/9705/checks?check_run_id=980072702
# To do in the future
- Remove the old job from CircleCI config.
- Replace `et check-android-packages` with `et android-build-packages` and remove all AARs from the repository — we no longer need them as we stopped publishing `expokit` package, so those AARs can be generated as part of building the shell app. It would increase job's time, but imho scheduling the job doesn't make much sense without rebuilding all the packages.
- Make cli command for dispatching GitHub workflows.
- Update releasing guide.
show more ...
|