History log of /expo/.github/workflows/shell-app-android.yml (Results 1 – 24 of 24)
Revision Date Author Comments
# 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 ...