Skip to content

Commit b920edc

Browse files
committed
Simplify Artifact Handling and Upgrade to actions/*-artifact@v4
- ZIP each emulator APK and upload once in batch rather than uploading each APK individually - Upgrade actions/upload-artifact and actions/download-artifact from v3 to v4 for [performance and behavioral benefits](https://github.com/actions/download-artifact?tab=readme-ov-file#v4---whats-new)
1 parent 0fd0c20 commit b920edc

File tree

1 file changed

+29
-138
lines changed

1 file changed

+29
-138
lines changed

.github/workflows/build.yml

+29-138
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,7 @@ jobs:
7373
- name: Copy 2600.emu artifact
7474
if: ${{ matrix.image == '2600.emu' }}
7575
run: |
76-
cp 2600.emu/target/android-release/build/outputs/apk/release/2600Emu-release.apk EX-Emulators/2600Emu-release.apk
77-
78-
- name: Upload 2600.emu artifact
79-
uses: actions/upload-artifact@v3
80-
if: ${{ matrix.image == '2600.emu' }}
81-
with:
82-
name: 2600emu
83-
path: ${{ github.workspace }}/2600.emu/target/android-release/build/outputs/apk/release/2600Emu-release.apk
76+
cp 2600.emu/target/android-release/build/outputs/apk/release/2600Emu-release.apk EX-Emulators/2600Emu.apk
8477
8578
- name: Build C64.emu
8679
if: ${{ matrix.image == 'C64.emu' }}
@@ -91,14 +84,7 @@ jobs:
9184
- name: Copy C64.emu artifact
9285
if: ${{ matrix.image == 'C64.emu' }}
9386
run: |
94-
cp C64.emu/target/android-release/build/outputs/apk/release/C64Emu-release.apk EX-Emulators/C64Emu-release.apk
95-
96-
- name: Upload C64.emu artifact
97-
uses: actions/upload-artifact@v3
98-
if: ${{ matrix.image == 'C64.emu' }}
99-
with:
100-
name: C64emu
101-
path: ${{ github.workspace }}/C64.emu/target/android-release/build/outputs/apk/release/C64Emu-release.apk
87+
cp C64.emu/target/android-release/build/outputs/apk/release/C64Emu-release.apk EX-Emulators/C64Emu.apk
10288
10389
- name: Build GBA.emu
10490
if: ${{ matrix.image == 'GBA.emu' }}
@@ -109,14 +95,7 @@ jobs:
10995
- name: Copy GBA.emu artifact
11096
if: ${{ matrix.image == 'GBA.emu' }}
11197
run: |
112-
cp GBA.emu/target/android-release/build/outputs/apk/release/GbaEmu-release.apk EX-Emulators/GbaEmu-release.apk
113-
114-
- name: Upload GBA.emu artifact
115-
uses: actions/upload-artifact@v3
116-
if: ${{ matrix.image == 'GBA.emu' }}
117-
with:
118-
name: GBAemu
119-
path: ${{ github.workspace }}/GBA.emu/target/android-release/build/outputs/apk/release/GbaEmu-release.apk
98+
cp GBA.emu/target/android-release/build/outputs/apk/release/GbaEmu-release.apk EX-Emulators/GbaEmu.apk
12099
121100
- name: Build GBC.emu
122101
if: ${{ matrix.image == 'GBC.emu' }}
@@ -127,14 +106,7 @@ jobs:
127106
- name: Copy GBC.emu artifact
128107
if: ${{ matrix.image == 'GBC.emu' }}
129108
run: |
130-
cp GBC.emu/target/android-release/build/outputs/apk/release/GbcEmu-release.apk EX-Emulators/GbcEmu-release.apk
131-
132-
- name: Upload GBC.emu artifact
133-
uses: actions/upload-artifact@v3
134-
if: ${{ matrix.image == 'GBC.emu' }}
135-
with:
136-
name: GBCemu
137-
path: ${{ github.workspace }}/GBC.emu/target/android-release/build/outputs/apk/release/GbcEmu-release.apk
109+
cp GBC.emu/target/android-release/build/outputs/apk/release/GbcEmu-release.apk EX-Emulators/GbcEmu.apk
138110
139111
- name: Build Lynx.emu
140112
if: ${{ matrix.image == 'Lynx.emu' }}
@@ -145,14 +117,7 @@ jobs:
145117
- name: Copy Lynx.emu artifact
146118
if: ${{ matrix.image == 'Lynx.emu' }}
147119
run: |
148-
cp Lynx.emu/target/android-release/build/outputs/apk/release/LynxEmu-release.apk EX-Emulators/LynxEmu-release.apk
149-
150-
- name: Upload Lynx.emu artifact
151-
uses: actions/upload-artifact@v3
152-
if: ${{ matrix.image == 'Lynx.emu' }}
153-
with:
154-
name: Lynxemu
155-
path: ${{ github.workspace }}/Lynx.emu/target/android-release/build/outputs/apk/release/LynxEmu-release.apk
120+
cp Lynx.emu/target/android-release/build/outputs/apk/release/LynxEmu-release.apk EX-Emulators/LynxEmu.apk
156121
157122
- name: Build MD.emu
158123
if: ${{ matrix.image == 'MD.emu' }}
@@ -163,14 +128,7 @@ jobs:
163128
- name: Copy MD.emu artifact
164129
if: ${{ matrix.image == 'MD.emu' }}
165130
run: |
166-
cp MD.emu/target/android-release/build/outputs/apk/release/MdEmu-release.apk EX-Emulators/MdEmu-release.apk
167-
168-
- name: Upload MD.emu artifact
169-
uses: actions/upload-artifact@v3
170-
if: ${{ matrix.image == 'MD.emu' }}
171-
with:
172-
name: MDemu
173-
path: ${{ github.workspace }}/MD.emu/target/android-release/build/outputs/apk/release/MdEmu-release.apk
131+
cp MD.emu/target/android-release/build/outputs/apk/release/MdEmu-release.apk EX-Emulators/MdEmu.apk
174132
175133
- name: Build MSX.emu
176134
if: ${{ matrix.image == 'MSX.emu' }}
@@ -181,14 +139,7 @@ jobs:
181139
- name: Copy MSX.emu artifact
182140
if: ${{ matrix.image == 'MSX.emu' }}
183141
run: |
184-
cp MSX.emu/target/android-release/build/outputs/apk/release/MsxEmu-release.apk EX-Emulators/MsxEmu-release.apk
185-
186-
- name: Upload MSX.emu artifact
187-
uses: actions/upload-artifact@v3
188-
if: ${{ matrix.image == 'MSX.emu' }}
189-
with:
190-
name: MSXemu
191-
path: ${{ github.workspace }}/MSX.emu/target/android-release/build/outputs/apk/release/MsxEmu-release.apk
142+
cp MSX.emu/target/android-release/build/outputs/apk/release/MsxEmu-release.apk EX-Emulators/MsxEmu.apk
192143
193144
- name: Build NEO.emu
194145
if: ${{ matrix.image == 'NEO.emu' }}
@@ -199,14 +150,7 @@ jobs:
199150
- name: Copy NEO.emu artifact
200151
if: ${{ matrix.image == 'NEO.emu' }}
201152
run: |
202-
cp NEO.emu/target/android-release/build/outputs/apk/release/NeoEmu-release.apk EX-Emulators/NeoEmu-release.apk
203-
204-
- name: Upload NEO.emu artifact
205-
uses: actions/upload-artifact@v3
206-
if: ${{ matrix.image == 'NEO.emu' }}
207-
with:
208-
name: NEOemu
209-
path: ${{ github.workspace }}/NEO.emu/target/android-release/build/outputs/apk/release/NeoEmu-release.apk
153+
cp NEO.emu/target/android-release/build/outputs/apk/release/NeoEmu-release.apk EX-Emulators/NeoEmu.apk
210154
211155
- name: Build NES.emu
212156
if: ${{ matrix.image == 'NES.emu' }}
@@ -217,14 +161,7 @@ jobs:
217161
- name: Copy NES.emu artifact
218162
if: ${{ matrix.image == 'NES.emu' }}
219163
run: |
220-
cp NES.emu/target/android-release/build/outputs/apk/release/NesEmu-release.apk EX-Emulators/NesEmu-release.apk
221-
222-
- name: Upload NES.emu artifact
223-
uses: actions/upload-artifact@v3
224-
if: ${{ matrix.image == 'NES.emu' }}
225-
with:
226-
name: NESemu
227-
path: ${{ github.workspace }}/NES.emu/target/android-release/build/outputs/apk/release/NesEmu-release.apk
164+
cp NES.emu/target/android-release/build/outputs/apk/release/NesEmu-release.apk EX-Emulators/NesEmu.apk
228165
229166
- name: Build NGP.emu
230167
if: ${{ matrix.image == 'NGP.emu' }}
@@ -235,14 +172,7 @@ jobs:
235172
- name: Copy NGP.emu artifact
236173
if: ${{ matrix.image == 'NGP.emu' }}
237174
run: |
238-
cp NGP.emu/target/android-release/build/outputs/apk/release/NgpEmu-release.apk EX-Emulators/NgpEmu-release.apk
239-
240-
- name: Upload NGP.emu artifact
241-
uses: actions/upload-artifact@v3
242-
if: ${{ matrix.image == 'NGP.emu' }}
243-
with:
244-
name: NGPemu
245-
path: ${{ github.workspace }}/NGP.emu/target/android-release/build/outputs/apk/release/NgpEmu-release.apk
175+
cp NGP.emu/target/android-release/build/outputs/apk/release/NgpEmu-release.apk EX-Emulators/NgpEmu.apk
246176
247177
- name: Build PCE.emu
248178
if: ${{ matrix.image == 'PCE.emu' }}
@@ -253,14 +183,7 @@ jobs:
253183
- name: Copy PCE.emu artifact
254184
if: ${{ matrix.image == 'PCE.emu' }}
255185
run: |
256-
cp PCE.emu/target/android-release/build/outputs/apk/release/PceEmu-release.apk EX-Emulators/PceEmu-release.apk
257-
258-
- name: Upload PCE.emu artifact
259-
uses: actions/upload-artifact@v3
260-
if: ${{ matrix.image == 'PCE.emu' }}
261-
with:
262-
name: PCEemu
263-
path: ${{ github.workspace }}/PCE.emu/target/android-release/build/outputs/apk/release/PceEmu-release.apk
186+
cp PCE.emu/target/android-release/build/outputs/apk/release/PceEmu-release.apk EX-Emulators/PceEmu.apk
264187
265188
- name: Build Snes9x
266189
if: ${{ matrix.image == 'Snes9x' }}
@@ -271,14 +194,7 @@ jobs:
271194
- name: Copy Snes9x artifact
272195
if: ${{ matrix.image == 'Snes9x' }}
273196
run: |
274-
cp Snes9x/target/android-release/build/outputs/apk/release/Snes9xEXPlus-release.apk EX-Emulators/Snes9xEXPlus-release.apk
275-
276-
- name: Upload Snes9x artifact
277-
uses: actions/upload-artifact@v3
278-
if: ${{ matrix.image == 'Snes9x' }}
279-
with:
280-
name: Snes9x
281-
path: ${{ github.workspace }}/Snes9x/target/android-release/build/outputs/apk/release/Snes9xEXPlus-release.apk
197+
cp Snes9x/target/android-release/build/outputs/apk/release/Snes9xEXPlus-release.apk EX-Emulators/Snes9xEXPlus.apk
282198
283199
- name: Build Snes9x-1.43-9
284200
if: ${{ matrix.image == 'Snes9x-1.43-9' }}
@@ -289,14 +205,7 @@ jobs:
289205
- name: Copy Snes9x-1.43-9 artifact
290206
if: ${{ matrix.image == 'Snes9x-1.43-9' }}
291207
run: |
292-
cp Snes9x/1.43/target/android-release-9/build/outputs/apk/release/Snes9xEX-release.apk EX-Emulators/Snes9xEX-9-release.apk
293-
294-
- name: Upload Snes9x-1.43-9 artifact
295-
uses: actions/upload-artifact@v3
296-
if: ${{ matrix.image == 'Snes9x-1.43-9' }}
297-
with:
298-
name: Snes9x-1.43-9
299-
path: ${{ github.workspace }}/Snes9x/1.43/target/android-release-9/build/outputs/apk/release/Snes9xEX-release.apk
208+
cp Snes9x/1.43/target/android-release-9/build/outputs/apk/release/Snes9xEX-release.apk EX-Emulators/Snes9xEX-9.apk
300209
301210
- name: Build Snes9x-1.43-15
302211
if: ${{ matrix.image == 'Snes9x-1.43-15' }}
@@ -307,14 +216,7 @@ jobs:
307216
- name: Copy Snes9x-1.43-15 artifact
308217
if: ${{ matrix.image == 'Snes9x-1.43-15' }}
309218
run: |
310-
cp Snes9x/1.43/target/android-release-15/build/outputs/apk/release/Snes9xEX-release.apk EX-Emulators/Snes9xEX-15-release.apk
311-
312-
- name: Upload Snes9x-1.43-15 artifact
313-
uses: actions/upload-artifact@v3
314-
if: ${{ matrix.image == 'Snes9x-1.43-15' }}
315-
with:
316-
name: Snes9x-1.43-15
317-
path: ${{ github.workspace }}/Snes9x/1.43/target/android-release-15/build/outputs/apk/release/Snes9xEX-release.apk
219+
cp Snes9x/1.43/target/android-release-15/build/outputs/apk/release/Snes9xEX-release.apk EX-Emulators/Snes9xEX-15.apk
318220
319221
- name: Build Swan.emu
320222
if: ${{ matrix.image == 'Swan.emu' }}
@@ -325,14 +227,7 @@ jobs:
325227
- name: Copy Swan.emu artifact
326228
if: ${{ matrix.image == 'Swan.emu' }}
327229
run: |
328-
cp Swan.emu/target/android-release/build/outputs/apk/release/SwanEmu-release.apk EX-Emulators/SwanEmu-release.apk
329-
330-
- name: Upload Swan.emu artifact
331-
uses: actions/upload-artifact@v3
332-
if: ${{ matrix.image == 'Swan.emu' }}
333-
with:
334-
name: Swanemu
335-
path: ${{ github.workspace }}/Swan.emu/target/android-release/build/outputs/apk/release/SwanEmu-release.apk
230+
cp Swan.emu/target/android-release/build/outputs/apk/release/SwanEmu-release.apk EX-Emulators/SwanEmu.apk
336231
337232
- name: Build Saturn.emu
338233
if: ${{ matrix.image == 'Saturn.emu' }}
@@ -343,19 +238,12 @@ jobs:
343238
- name: Copy Saturn.emu artifact
344239
if: ${{ matrix.image == 'Saturn.emu' }}
345240
run: |
346-
cp Saturn.emu/target/android-release/build/outputs/apk/release/SaturnEmu-release.apk EX-Emulators/SaturnEmu-release.apk
347-
348-
- name: Upload Saturn.emu artifact
349-
uses: actions/upload-artifact@v3
350-
if: ${{ matrix.image == 'Saturn.emu' }}
351-
with:
352-
name: Saturnemu
353-
path: ${{ github.workspace }}/Saturn.emu/target/android-release/build/outputs/apk/release/SaturnEmu-release.apk
241+
cp Saturn.emu/target/android-release/build/outputs/apk/release/SaturnEmu-release.apk EX-Emulators/SaturnEmu.apk
354242
355243
- name: Upload EX-Emulators artifacts
356-
uses: actions/upload-artifact@v3
244+
uses: actions/upload-artifact@v4
357245
with:
358-
name: EX-Emulators
246+
name: EX-Emulators-${{ matrix.image }}
359247
path: EX-Emulators/
360248

361249
release:
@@ -371,20 +259,23 @@ jobs:
371259
fetch-depth: 0
372260

373261
- name: Download Artifacts
374-
uses: actions/download-artifact@v3
262+
uses: actions/download-artifact@v4
375263
with:
376-
path: dist
264+
path: EX-Emulators
265+
pattern: EX-Emulators-*
266+
merge-multiple: true
377267

378268
- name: Re-zip artifacts
379269
run: |
380-
cd dist
381-
for artifact in *
270+
mkdir dist
271+
cd EX-Emulators || exit 1
272+
for artifact in *.apk
382273
do
383-
echo "-> Creating ${artifact}.zip"
384-
pushd "$artifact"
385-
zip -r "../${artifact}.zip" *
386-
popd
274+
emulator_name="${artifact%.apk}"
275+
echo "-> Creating ${emulator_name}.zip"
276+
zip "../dist/${emulator_name}.zip" "${emulator_name}.apk"
387277
done
278+
zip -r ../dist/EX-Emulators.zip *.apk
388279
389280
- name: Update Git Tag
390281
run: |

0 commit comments

Comments
 (0)