@@ -15,12 +15,11 @@ jobs:
1515 strategy :
1616 matrix :
1717 node-version : [18.x]
18- # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
1918 steps :
2019 - name : Checkout
21- uses : actions/checkout@v2
20+ uses : actions/checkout@v4
2221 - name : Use Node.js ${{ matrix.node-version }}
23- uses : actions/setup-node@v2
22+ uses : actions/setup-node@v4
2423 with :
2524 node-version : ${{ matrix.node-version }}
2625 - run : npm install
@@ -31,60 +30,98 @@ jobs:
3130 strategy :
3231 matrix :
3332 node-version : [18.x]
34- # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
33+ api-level : [34]
3534
3635 steps :
3736 - name : Checkout
38- uses : actions/checkout@v2
37+ uses : actions/checkout@v4
38+
3939 - name : Use Node.js ${{ matrix.node-version }}
40- uses : actions/setup-node@v2
40+ uses : actions/setup-node@v4
4141 with :
4242 node-version : ${{ matrix.node-version }}
43- - uses : actions/setup-java@v4
43+
44+ - name : Setup Java
45+ uses : actions/setup-java@v4
4446 with :
45- distribution : " temurin" # See 'Supported distributions' for available options
47+ distribution : " temurin"
4648 java-version : " 17"
47- - run : npm install
48- - run : npm install -g react-native-cli
49- - run : npm i react-native-gradle-plugin
49+
50+ - name : Setup Gradle
51+ uses : gradle/actions/setup-gradle@v4
52+
53+ - name : Install dependencies
54+ run : |
55+ npm install
56+ npm install -g react-native-cli
57+ npm i react-native-gradle-plugin
58+
5059 - name : Test Integration - Install dependencies
5160 working-directory : ./Samples/SimpleMixpanel
5261 run : yarn install
62+
5363 - name : Enable KVM
5464 run : |
5565 echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
5666 sudo udevadm control --reload-rules
5767 sudo udevadm trigger --name-match=kvm
58- - name : Setup Android
59- uses : reactivecircus/android-emulator-runner@v2.32.0
68+
69+ - name : AVD cache
70+ uses : actions/cache@v4
71+ id : avd-cache
72+ with :
73+ path : |
74+ ~/.android/avd/*
75+ ~/.android/adb*
76+ key : avd-${{ matrix.api-level }}-google-apis-x86_64-nexus5x
77+
78+ - name : Create AVD and generate snapshot for caching
79+ if : steps.avd-cache.outputs.cache-hit != 'true'
80+ uses : reactivecircus/android-emulator-runner@v2
81+ env :
82+ GRADLE_OPTS : -Xmx4096m -Dorg.gradle.daemon=false
83+ JAVA_OPTS : -Xmx4096m
6084 with :
61- api-level : 34
85+ api-level : ${{ matrix.api-level }}
6286 target : google_apis
63- profile : Nexus 5X
6487 arch : x86_64
65- working-directory : ./Samples/SimpleMixpanel/android
66- script : ./gradlew
67- - name : Test Android
68- uses : reactivecircus/android-emulator-runner@v2.35.0
88+ profile : Nexus 5X
89+ force-avd-creation : false
90+ emulator-options : -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
91+ disable-animations : false
92+ working-directory : ./Samples/SimpleMixpanel
93+ script : echo "Generated AVD snapshot for caching."
94+
95+ - name : Run Android Tests
96+ uses : reactivecircus/android-emulator-runner@v2
97+ env :
98+ GRADLE_OPTS : -Xmx4096m -Dorg.gradle.daemon=false
99+ JAVA_OPTS : -Xmx4096m
69100 with :
70- api-level : 34
101+ api-level : ${{ matrix.api-level }}
71102 target : google_apis
72- profile : Nexus 5X
73103 arch : x86_64
104+ profile : Nexus 5X
105+ force-avd-creation : false
106+ emulator-options : -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
107+ disable-animations : true
108+ emulator-boot-timeout : 900
74109 working-directory : ./Samples/SimpleMixpanel
75- script : react-native run-android
110+ script : |
111+ echo "org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m -XX:+HeapDumpOnOutOfMemoryError" >> android/gradle.properties
112+ echo "org.gradle.daemon=false" >> android/gradle.properties
113+ npx react-native run-android --no-packager
76114
77115 test_ios :
78116 runs-on : macos-latest
79117 strategy :
80118 matrix :
81119 node-version : [18.x]
82- # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
83120 steps :
84121 - name : Checkout
85- uses : actions/checkout@v2
122+ uses : actions/checkout@v4
86123 - name : Use Node.js ${{ matrix.node-version }}
87- uses : actions/setup-node@v2
124+ uses : actions/setup-node@v4
88125 with :
89126 node-version : ${{ matrix.node-version }}
90127 - run : npm install
0 commit comments