-
Notifications
You must be signed in to change notification settings - Fork 2
132 lines (111 loc) · 3.49 KB
/
test.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: Test
on:
push:
jobs:
test:
name: Test Android
runs-on: ubuntu-xl
env:
AVD_NAME: ubuntu-avd-x86_64-31
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Gradle Cache
uses: gradle/gradle-build-action@v2
- name: AVD Cache
uses: actions/cache@v3
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-31
- name: Setup NodeJS
uses: actions/setup-node@v2
with:
node-version: 18
cache: 'yarn'
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: 17
distribution: 'adopt'
cache: 'gradle'
- name: Setup Yarn
run: |
npm install -g yarn
echo "Yarn version: $(yarn -v)"
- name: Install Dependencies
run: yarn install --frozen-lockfile
- name: Configure Test App
run: |
cd tests
yarn install --frozen-lockfile
- name: create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/[email protected]
with:
api-level: 31
force-avd-creation: false
target: google_apis
arch: x86_64
disable-animations: false
avd-name: $AVD_NAME
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
script: echo "Generated AVD snapshot for caching."
- name: Run connected Android tests
uses: ReactiveCircus/[email protected]
with:
api-level: 31
target: google_apis
arch: x86_64
avd-name: $AVD_NAME
script: cd tests && yarn test-android --avdName $AVD_NAME
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
test-ios:
name: Test iOS (Only build)
runs-on: macOS-13
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: irgaly/xcode-cache@v1
with:
key: xcode-cache-deriveddata-${{ github.workflow }}-${{ github.sha }}
restore-keys: xcode-cache-deriveddata-${{ github.workflow }}-
- name: CocoaPods Cache
uses: actions/cache@v3
id: cocoapods-cache
with:
path: |
tests/ios/Pods/*
key: ${{ runner.os }}-${{ hashFiles('tests/ios/Podfile.lock') }}
- name: Setup NodeJS
uses: actions/setup-node@v2
with:
node-version: 18
cache: 'yarn'
- name: Setup Yarn
run: |
npm install -g yarn
echo "Yarn version: $(yarn -v)"
- name: Install Dependencies
run: yarn install --frozen-lockfile
- name: Configure Test App
run: |
cd tests
yarn install --frozen-lockfile
- name: Install Cocoapods
run: |
cd tests/ios && pod install
- name: Build iOS
run: |
cd tests && yarn build-ios