1
1
name : Build SKIA Graphite
2
2
on : workflow_dispatch
3
-
4
3
jobs :
5
4
build :
6
- strategy :
7
- fail-fast : false
8
- matrix :
9
- include :
10
- # Android builds
11
- - platform : android
12
- arch : arm
13
- runner : macos-latest-xlarge
14
- ndk_required : true
15
- - platform : android
16
- arch : arm64
17
- runner : macos-latest-xlarge
18
- ndk_required : true
19
- - platform : android
20
- arch : x86
21
- runner : macos-latest-xlarge
22
- ndk_required : true
23
- - platform : android
24
- arch : x64
25
- runner : macos-latest-xlarge
26
- ndk_required : true
27
- # Apple builds (excluding tvOS for Graphite)
28
- - platform : apple
29
- arch : arm64-iphoneos
30
- runner : macos-latest-xlarge
31
- ndk_required : false
32
- - platform : apple
33
- arch : arm64-iphonesimulator
34
- runner : macos-latest-xlarge
35
- ndk_required : false
36
- - platform : apple
37
- arch : x64-iphonesimulator
38
- runner : macos-latest-xlarge
39
- ndk_required : false
40
- - platform : apple
41
- arch : arm64-macosx
42
- runner : macos-latest-xlarge
43
- ndk_required : false
44
- - platform : apple
45
- arch : x64-macosx
46
- runner : macos-latest-xlarge
47
- ndk_required : false
48
-
49
- name : Build-Graphite-${{ matrix.platform }}-${{ matrix.arch }}
50
- runs-on : ${{ matrix.runner }}
5
+ runs-on : macos-latest-xlarge
51
6
steps :
52
7
- name : checkout
53
8
uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
54
9
with :
55
10
submodules : recursive
56
11
57
12
- name : Setup Android NDK
58
- if : matrix.ndk_required
59
13
id : setup-ndk
60
14
uses : nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 # v1.5.0
61
15
with :
62
16
ndk-version : r26d
63
17
18
+ - name : Set ANDROID_NDK
19
+ run : echo "ANDROID_NDK=$ANDROID_HOME/ndk-bundle" >> $GITHUB_ENV
20
+
64
21
- name : Setup Ninja
65
22
uses : seanmiddleditch/gha-setup-ninja@master
66
23
70
27
download_skia : ' false'
71
28
github_token : ${{ secrets.GITHUB_TOKEN }}
72
29
73
- - name : Update depot_tools
74
- working-directory : ./externals/depot_tools
75
- run : ./update_depot_tools
76
-
77
30
- name : Apply Dawn patch
78
31
run : |
79
32
DAWN_GNI_FILE="./externals/skia/build_overrides/dawn.gni"
@@ -88,146 +41,88 @@ jobs:
88
41
echo "Warning: dawn.gni file not found at $DAWN_GNI_FILE"
89
42
fi
90
43
91
- - name : Build Skia with Graphite ${{ matrix.platform }} ${{ matrix.arch }}
44
+ - name : Build Skia with Graphite
92
45
working-directory : ./packages/skia
93
46
env :
94
47
ANDROID_NDK : ${{ steps.setup-ndk.outputs.ndk-path }}
95
48
GIT_SYNC_DEPS_SKIP_EMSDK : ' true'
96
49
ZERO_AR_DATE : 1
97
50
SK_GRAPHITE : 1
98
- run : yarn build-skia --platform ${{ matrix.platform }} --arch ${{ matrix.arch }}
51
+ run : yarn build-skia
99
52
100
- - name : Upload build artifacts
53
+ - name : Upload artifacts - Android arm (Graphite)
101
54
if : github.ref == 'refs/heads/main'
102
55
uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
103
56
with :
104
- name : skia-graphite-${{ matrix.platform }}-${{ matrix.arch }}
57
+ name : skia-graphite-android-arm
105
58
path : |
106
- ./externals/skia/out/${{ matrix.platform }}/${{ matrix.arch }}/lib*.a
107
- ./packages/skia/libs/${{ matrix.platform }}/**/*
108
- ./packages/skia/cpp/**/*
109
-
110
- # Job to create XCFrameworks after all Apple builds are complete
111
- package-apple :
112
- name : Package Apple XCFrameworks (Graphite)
113
- runs-on : macos-latest-xlarge
114
- needs : build
115
- if : github.ref == 'refs/heads/main'
116
- steps :
117
- - name : checkout
118
- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
59
+ ./externals/skia/out/android/arm/libskia.a
60
+ ./externals/skia/out/android/arm/libskshaper.a
61
+ ./externals/skia/out/android/arm/libsvg.a
62
+ ./externals/skia/out/android/arm/libskottie.a
63
+ ./externals/skia/out/android/arm/libsksg.a
64
+ ./externals/skia/out/android/arm/libskparagraph.a
65
+ ./externals/skia/out/android/arm/libskunicode_core.a
66
+ ./externals/skia/out/android/arm/libskunicode_icu.a
67
+
68
+ - name : Upload artifacts - Android arm64 (Graphite)
69
+ if : github.ref == 'refs/heads/main'
70
+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
119
71
with :
120
- submodules : recursive
121
-
122
- - name : Setup Ninja
123
- uses : seanmiddleditch/gha-setup-ninja@master
124
-
125
- - name : Setup
126
- uses : ./.github/actions/setup
72
+ name : skia-graphite-android-arm-64
73
+ path : |
74
+ ./externals/skia/out/android/arm64/libskia.a
75
+ ./externals/skia/out/android/arm64/libskshaper.a
76
+ ./externals/skia/out/android/arm64/libsvg.a
77
+ ./externals/skia/out/android/arm64/libskottie.a
78
+ ./externals/skia/out/android/arm64/libsksg.a
79
+ ./externals/skia/out/android/arm64/libskparagraph.a
80
+ ./externals/skia/out/android/arm64/libskunicode_core.a
81
+ ./externals/skia/out/android/arm64/libskunicode_icu.a
82
+
83
+ - name : Upload artifacts - Android x86 (Graphite)
84
+ if : github.ref == 'refs/heads/main'
85
+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
127
86
with :
128
- download_skia : ' false'
129
- github_token : ${{ secrets.GITHUB_TOKEN }}
130
-
131
- - name : Download all Apple build artifacts
132
- uses : actions/download-artifact@v4
87
+ name : skia-graphite-android-arm-x86
88
+ path : |
89
+ ./externals/skia/out/android/x86/libskia.a
90
+ ./externals/skia/out/android/x86/libskshaper.a
91
+ ./externals/skia/out/android/x86/libsvg.a
92
+ ./externals/skia/out/android/x86/libskottie.a
93
+ ./externals/skia/out/android/x86/libsksg.a
94
+ ./externals/skia/out/android/x86/libskparagraph.a
95
+ ./externals/skia/out/android/x86/libskunicode_core.a
96
+ ./externals/skia/out/android/x86/libskunicode_icu.a
97
+
98
+ - name : Upload artifacts - Android x64 (Graphite)
99
+ if : github.ref == 'refs/heads/main'
100
+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
133
101
with :
134
- pattern : skia-graphite-apple-*
135
- path : artifacts
136
-
137
- - name : Reconstruct build output structure
138
- run : |
139
- mkdir -p externals/skia/out/apple
140
- # Move downloaded artifacts to expected locations
141
- for artifact_dir in artifacts/skia-graphite-apple-*; do
142
- if [ -d "$artifact_dir" ]; then
143
- arch=$(basename "$artifact_dir" | sed 's/skia-graphite-apple-//')
144
- echo "Processing $arch from $artifact_dir"
145
- mkdir -p "externals/skia/out/apple/$arch"
146
- if [ -d "$artifact_dir/externals/skia/out/apple/$arch" ]; then
147
- cp -r "$artifact_dir/externals/skia/out/apple/$arch/"* "externals/skia/out/apple/$arch/"
148
- fi
149
- fi
150
- done
151
-
152
- - name : Build XCFrameworks (Graphite)
153
- working-directory : ./packages/skia
154
- env :
155
- GIT_SYNC_DEPS_SKIP_EMSDK : ' true'
156
- ZERO_AR_DATE : 1
157
- SK_GRAPHITE : 1
158
- run : |
159
- # We need to build XCFrameworks from the individual platform builds
160
- # This requires running the XCFramework creation logic from build-skia.ts
161
- npx tsx -e "
162
- import { buildXCFrameworks } from './scripts/build-skia.ts';
163
- buildXCFrameworks();
164
- "
165
-
166
- - name : Upload Apple XCFrameworks (Graphite)
102
+ name : skia-graphite-android-arm-x64
103
+ path : |
104
+ ./externals/skia/out/android/x64/libskia.a
105
+ ./externals/skia/out/android/x64/libskshaper.a
106
+ ./externals/skia/out/android/x64/libsvg.a
107
+ ./externals/skia/out/android/x64/libskottie.a
108
+ ./externals/skia/out/android/x64/libsksg.a
109
+ ./externals/skia/out/android/x64/libskparagraph.a
110
+ ./externals/skia/out/android/x64/libskunicode_core.a
111
+ ./externals/skia/out/android/x64/libskunicode_icu.a
112
+
113
+ - name : Upload artifacts - Apple xcframeworks (Graphite)
114
+ if : github.ref == 'refs/heads/main'
167
115
uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
168
116
with :
169
117
name : skia-graphite-apple-xcframeworks
170
118
path : |
171
119
./packages/skia/libs/apple/*.xcframework
172
120
173
- - name : Upload Graphite Headers
121
+ - name : Upload artifacts - Graphite Headers
122
+ if : github.ref == 'refs/heads/main'
174
123
uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
175
124
with :
176
125
name : skia-graphite-headers
177
126
path : |
178
127
./packages/skia/cpp/dawn/include/
179
- ./packages/skia/cpp/skia/src/gpu/graphite/
180
-
181
- # Job to package Android build artifacts after all Android builds are complete
182
- package-android :
183
- name : Package Android Build Artifacts (Graphite)
184
- runs-on : macos-latest-xlarge
185
- needs : build
186
- if : github.ref == 'refs/heads/main'
187
- steps :
188
- - name : checkout
189
- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
190
- with :
191
- submodules : recursive
192
-
193
- - name : Setup Ninja
194
- uses : seanmiddleditch/gha-setup-ninja@master
195
-
196
- - name : Setup
197
- uses : ./.github/actions/setup
198
- with :
199
- download_skia : ' false'
200
- github_token : ${{ secrets.GITHUB_TOKEN }}
201
-
202
- - name : Update depot_tools
203
- working-directory : ./externals/depot_tools
204
- run : ./update_depot_tools
205
-
206
- - name : Download all Android build artifacts
207
- uses : actions/download-artifact@v4
208
- with :
209
- pattern : skia-graphite-android-*
210
- path : artifacts
211
-
212
- - name : Reconstruct Android build output structure
213
- run : |
214
- mkdir -p externals/skia/out/android
215
- # Move downloaded artifacts to expected locations
216
- for artifact_dir in artifacts/skia-graphite-android-*; do
217
- if [ -d "$artifact_dir" ]; then
218
- arch=$(basename "$artifact_dir" | sed 's/skia-graphite-android-//')
219
- echo "Processing $arch from $artifact_dir"
220
- mkdir -p "externals/skia/out/android/$arch"
221
- if [ -d "$artifact_dir/externals/skia/out/android/$arch" ]; then
222
- cp -r "$artifact_dir/externals/skia/out/android/$arch/"* "externals/skia/out/android/$arch/"
223
- fi
224
- fi
225
- done
226
-
227
- - name : Upload Android Build Artifacts (Graphite)
228
- uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
229
- with :
230
- name : skia-graphite-android-builds
231
- path : |
232
- ./packages/skia/libs/android/**/*
233
- ./packages/skia/cpp/**/*
128
+ ./packages/skia/cpp/skia/src/gpu/graphite/
0 commit comments