mirror of
https://github.com/status-im/react-native.git
synced 2025-01-11 01:56:26 +00:00
fe2ff122dc
Summary: Created a containerized environment to run unit and integration tests for both javascript and android as well as a Jenkinsfile using the new 2.0 Pipeline syntax for integration into a Jenkins CI cluster. Here is a quick summary of the changes: * The android image is built from two separate dockerfiles. There is a base image that handles the heavy lifting of dependencies that are infrequently changed while the secondary image extends the base and allows for much quicker incremental builds on code updates. * The javascript image is simple and is relatively quick to build, therefore there is no base image for any react specific javascript dependencies and it is all packaged in a single docker image. * A new `scripts/docker` has been created including some javascript files and shell scripts to aid in the running of the tests * The instrumentation test runner script can be passed various flags to control which tests run since the entire suite takes a significant amount of time to run synchronously * Jen Closes https://github.com/facebook/react-native/pull/11902 Differential Revision: D4609238 Pulled By: ericvicenti fbshipit-source-id: a317f3ac3be898180b009254a9604ca7d579a8b9
35 lines
1.1 KiB
Bash
35 lines
1.1 KiB
Bash
#!/bin/bash
|
|
|
|
# for buck gen
|
|
mount -o remount,exec /dev/shm
|
|
|
|
AVD_UUID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)
|
|
|
|
# create virtual device
|
|
echo no | android create avd -n $AVD_UUID -f -t android-19 --abi default/armeabi-v7a
|
|
|
|
# emulator setup
|
|
emulator64-arm -avd $AVD_UUID -no-skin -no-audio -no-window -no-boot-anim &
|
|
bootanim=""
|
|
until [[ "$bootanim" =~ "stopped" ]]; do
|
|
sleep 5
|
|
bootanim=$(adb -e shell getprop init.svc.bootanim 2>&1)
|
|
echo "boot animation status=$bootanim"
|
|
done
|
|
|
|
set -x
|
|
|
|
# solve issue with max user watches limit
|
|
echo 65536 | tee -a /proc/sys/fs/inotify/max_user_watches
|
|
watchman shutdown-server
|
|
|
|
# integration tests
|
|
# build JS bundle for instrumentation tests
|
|
node local-cli/cli.js bundle --platform android --dev true --entry-file ReactAndroid/src/androidTest/js/TestBundle.js --bundle-output ReactAndroid/src/androidTest/assets/AndroidTestBundle.js
|
|
|
|
# build test APK
|
|
buck install ReactAndroid/src/androidTest/buck-runner:instrumentation-tests --config build.threads=1
|
|
|
|
# run installed apk with tests
|
|
node ./ContainerShip/scripts/run-android-ci-instrumentation-tests.js $*
|