-
Notifications
You must be signed in to change notification settings - Fork 3
131 lines (106 loc) · 4.2 KB
/
Copy pathe2e.yml
File metadata and controls
131 lines (106 loc) · 4.2 KB
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
name: E2E Tests
on: [push, pull_request]
jobs:
ios_e2e:
runs-on: macos-latest
env:
EXPO_NO_WAIT: true
CI: true
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: Install Expo CLI
run: npm install -g expo-cli
- name: Install applesimutils
run: |
brew tap wix/brew
brew install applesimutils
- name: Prebuild
run: npm run prebuild
# Build iOS and Android apps for E2E
- name: Build iOS for Detox
run: npm run e2e:build:ios
# Start Metro bundler in background
- name: Start Metro bundler
run: npx expo start --dev-client --port 8081 &
# Give Metro a few seconds to boot before launching Detox
- name: Wait for Metro
run: sleep 20
- name: Run iOS Detox tests
run: npm run e2e:test:ios
# TODO: Fix android e2e tests (No space left on device)
# android_e2e:
# runs-on: ubuntu-latest
# env:
# EXPO_NO_WAIT: true
# CI: true
# steps:
# - name: Checkout repo
# uses: actions/checkout@v3
# - name: Set up Node.js
# uses: actions/setup-node@v3
# with:
# node-version: 20
# - name: Install dependencies
# run: npm ci
# - name: Install Expo CLI
# run: npm install -g expo-cli
# - name: Android SDK
# uses: android-actions/setup-android@v3
# - name: Setup NDK
# uses: nttld/setup-ndk@v1
# with:
# ndk-version: r26d
# - name: Prebuild
# run: npm run prebuild
# - name: Start Metro bundler
# run: npx expo start --dev-client --port 8081 &
# - name: Wait for Metro
# run: |
# for i in {1..30}; do
# if nc -z localhost 8081; then
# echo "Metro is up!"
# break
# fi
# echo "Waiting for Metro..."
# sleep 2
# done
# - name: Enable KVM (faster emulator)
# 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: Clean workspace
# run: |
# echo "Cleaning unused caches..."
# sudo rm -rf $HOME/.gradle/caches/
# sudo rm -rf $HOME/.android/build-cache/
# sudo rm -rf android/app/build/
# sudo rm -rf /tmp/*
# sudo rm -rf /usr/local/lib/android/sdk/system-images
# - name: Build Android for Detox
# uses: reactivecircus/android-emulator-runner@v2
# with:
# api-level: 29
# target: google_apis
# arch: x86_64
# disable-animations: true
# disk-size: 2048M
# emulator-options: "-no-snapshot -no-boot-anim -no-window -gpu swiftshader_indirect -memory 4096 -cores 4"
# script: npm run e2e:build:android
# - name: Run Android Detox tests
# uses: reactivecircus/android-emulator-runner@v2
# with:
# api-level: 29
# target: google_apis
# arch: x86_64
# disable-animations: true
# disk-size: 2048M
# emulator-options: "-no-snapshot -no-boot-anim -no-window -gpu swiftshader_indirect -memory 4096 -cores 4"
# script: npm run e2e:build:android