-
Notifications
You must be signed in to change notification settings - Fork 23
130 lines (110 loc) · 3.7 KB
/
test.yml
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
name: CI
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/[email protected]
with:
node-version: 18.x
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Run test
run: |
yarn
yarn lint
build-ios:
runs-on: macos-latest
steps:
# Checkout the code
- name: Checkout the code
uses: actions/checkout@v4
# Set up Node.js environment
- name: Set up Node.js
uses: actions/[email protected]
with:
node-version: 18.x
# Cache Yarn dependencies to speed up the build
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
# Install dependencies
- name: Install dependencies
run: yarn
# Prebuild the iOS folder for Expo
- name: Prebuild iOS with Expo
working-directory: apps/external-display-example
run: |
yarn expo prebuild --platform ios
# Install xcpretty for better build output
- name: Install xcpretty
run: gem install xcpretty
# Build the iOS app using Xcode (with xcpretty)
- name: Build iOS App (Debug) with xcpretty
working-directory: apps/external-display-example/ios
run: |
set -o pipefail && xcodebuild \
-workspace RNExternalDisplayExample.xcworkspace \
-scheme RNExternalDisplayExample \
-configuration Debug \
-sdk iphonesimulator \
-derivedDataPath build | xcpretty --no-color
build-android:
runs-on: ubuntu-latest
steps:
# Checkout the code
- name: Checkout the code
uses: actions/checkout@v4
# Set up Node.js environment
- name: Set up Node.js
uses: actions/[email protected]
with:
node-version: 18.x
# Install Java 17
- name: Set up Java 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
# Cache Yarn dependencies to speed up the build
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
# Install dependencies
- name: Install dependencies
run: yarn
# Prebuild the Android folder for Expo
- name: Prebuild Android with Expo
working-directory: apps/external-display-example
run: |
yarn expo prebuild --platform android
# Build the APK without running on a device
- name: Build Android APK
working-directory: apps/external-display-example/android
run: ./gradlew assembleDebug