Skip to content

Commit 77702dc

Browse files
committed
Simplify Artifact Handling and Upgrade to actions/*-artifact@v4
- 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) - Upload each APK in a general step rather than in step customized for each APK - Add the commit hash prefix to filenames
1 parent 0fd0c20 commit 77702dc

File tree

1 file changed

+32
-204
lines changed

1 file changed

+32
-204
lines changed

.github/workflows/build.yml

+32-204
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ jobs:
5050
echo "EMUFRAMEWORK_PATH=${{ github.workspace }}/EmuFramework" >> $GITHUB_ENV
5151
echo "IMAGINE_PATH=${{ github.workspace }}/imagine" >> $GITHUB_ENV
5252
echo "IMAGINE_SDK_PATH=${{ github.workspace }}/imagine-sdk" >> $GITHUB_ENV
53+
echo "COMMIT_PREFIX=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV
5354
5455
- name: Run script
5556
run: |
@@ -69,293 +70,116 @@ jobs:
6970
run: |
7071
cd 2600.emu
7172
make -f android-release.mk android-apk V=1 -j`nproc`
72-
73-
- name: Copy 2600.emu artifact
74-
if: ${{ matrix.image == '2600.emu' }}
75-
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
73+
cp target/android-release/build/outputs/apk/release/2600Emu-release.apk "../EX-Emulators/2600Emu-${COMMIT_PREFIX}.apk"
8474
8575
- name: Build C64.emu
8676
if: ${{ matrix.image == 'C64.emu' }}
8777
run: |
8878
cd C64.emu
8979
make -f android-release.mk android-apk V=1 -j`nproc`
90-
91-
- name: Copy C64.emu artifact
92-
if: ${{ matrix.image == 'C64.emu' }}
93-
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
80+
cp target/android-release/build/outputs/apk/release/C64Emu-release.apk "../EX-Emulators/C64Emu-${COMMIT_PREFIX}.apk"
10281
10382
- name: Build GBA.emu
10483
if: ${{ matrix.image == 'GBA.emu' }}
10584
run: |
10685
cd GBA.emu
10786
make -f android-release.mk android-apk V=1 -j`nproc`
108-
109-
- name: Copy GBA.emu artifact
110-
if: ${{ matrix.image == 'GBA.emu' }}
111-
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
87+
cp target/android-release/build/outputs/apk/release/GbaEmu-release.apk "../EX-Emulators/GbaEmu-${COMMIT_PREFIX}.apk"
12088
12189
- name: Build GBC.emu
12290
if: ${{ matrix.image == 'GBC.emu' }}
12391
run: |
12492
cd GBC.emu
12593
make -f android-release.mk android-apk V=1 -j`nproc`
126-
127-
- name: Copy GBC.emu artifact
128-
if: ${{ matrix.image == 'GBC.emu' }}
129-
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
94+
cp target/android-release/build/outputs/apk/release/GbcEmu-release.apk "../EX-Emulators/GbcEmu-${COMMIT_PREFIX}.apk"
13895
13996
- name: Build Lynx.emu
14097
if: ${{ matrix.image == 'Lynx.emu' }}
14198
run: |
14299
cd Lynx.emu
143100
make -f android-release.mk android-apk V=1 -j`nproc`
144-
145-
- name: Copy Lynx.emu artifact
146-
if: ${{ matrix.image == 'Lynx.emu' }}
147-
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
101+
cp target/android-release/build/outputs/apk/release/LynxEmu-release.apk "../EX-Emulators/LynxEmu-${COMMIT_PREFIX}.apk"
156102
157103
- name: Build MD.emu
158104
if: ${{ matrix.image == 'MD.emu' }}
159105
run: |
160106
cd MD.emu
161107
make -f android-release.mk android-apk V=1 -j`nproc`
162-
163-
- name: Copy MD.emu artifact
164-
if: ${{ matrix.image == 'MD.emu' }}
165-
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
108+
cp target/android-release/build/outputs/apk/release/MdEmu-release.apk "../EX-Emulators/MdEmu-${COMMIT_PREFIX}.apk"
174109
175110
- name: Build MSX.emu
176111
if: ${{ matrix.image == 'MSX.emu' }}
177112
run: |
178113
cd MSX.emu
179114
make -f android-release.mk android-apk V=1 -j`nproc`
180-
181-
- name: Copy MSX.emu artifact
182-
if: ${{ matrix.image == 'MSX.emu' }}
183-
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
115+
cp target/android-release/build/outputs/apk/release/MsxEmu-release.apk "../EX-Emulators/MsxEmu-${COMMIT_PREFIX}.apk"
192116
193117
- name: Build NEO.emu
194118
if: ${{ matrix.image == 'NEO.emu' }}
195119
run: |
196120
cd NEO.emu
197121
make -f android-release.mk android-apk V=1 -j`nproc`
198-
199-
- name: Copy NEO.emu artifact
200-
if: ${{ matrix.image == 'NEO.emu' }}
201-
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
122+
cp target/android-release/build/outputs/apk/release/NeoEmu-release.apk "../EX-Emulators/NeoEmu-${COMMIT_PREFIX}.apk"
210123
211124
- name: Build NES.emu
212125
if: ${{ matrix.image == 'NES.emu' }}
213126
run: |
214127
cd NES.emu
215128
make -f android-release.mk android-apk V=1 -j`nproc`
216-
217-
- name: Copy NES.emu artifact
218-
if: ${{ matrix.image == 'NES.emu' }}
219-
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
129+
cp target/android-release/build/outputs/apk/release/NesEmu-release.apk "../EX-Emulators/NesEmu-${COMMIT_PREFIX}.apk"
228130
229131
- name: Build NGP.emu
230132
if: ${{ matrix.image == 'NGP.emu' }}
231133
run: |
232134
cd NGP.emu
233135
make -f android-release.mk android-apk V=1 -j`nproc`
234-
235-
- name: Copy NGP.emu artifact
236-
if: ${{ matrix.image == 'NGP.emu' }}
237-
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
136+
cp target/android-release/build/outputs/apk/release/NgpEmu-release.apk "../EX-Emulators/NgpEmu-${COMMIT_PREFIX}.apk"
246137
247138
- name: Build PCE.emu
248139
if: ${{ matrix.image == 'PCE.emu' }}
249140
run: |
250141
cd PCE.emu
251142
make -f android-release.mk android-apk V=1 -j`nproc`
252-
253-
- name: Copy PCE.emu artifact
254-
if: ${{ matrix.image == 'PCE.emu' }}
255-
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
143+
cp target/android-release/build/outputs/apk/release/PceEmu-release.apk "../EX-Emulators/PceEmu-${COMMIT_PREFIX}.apk"
264144
265145
- name: Build Snes9x
266146
if: ${{ matrix.image == 'Snes9x' }}
267-
run: |
268147
cd Snes9x
269148
make -f android-release.mk android-apk V=1 -j`nproc`
270-
271-
- name: Copy Snes9x artifact
272-
if: ${{ matrix.image == 'Snes9x' }}
273-
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
149+
cp target/android-release/build/outputs/apk/release/Snes9xEXPlus-release.apk "../EX-Emulators/Snes9xEXPlus-${COMMIT_PREFIX}.apk"
282150

283151
- name: Build Snes9x-1.43-9
284152
if: ${{ matrix.image == 'Snes9x-1.43-9' }}
285153
run: |
286154
cd Snes9x/1.43
287155
make -f android-release-9.mk android-apk V=1 -j`nproc`
288-
289-
- name: Copy Snes9x-1.43-9 artifact
290-
if: ${{ matrix.image == 'Snes9x-1.43-9' }}
291-
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
156+
cp target/android-release-9/build/outputs/apk/release/Snes9xEX-release.apk "../../EX-Emulators/Snes9xEX-9-${COMMIT_PREFIX}.apk"
300157
301158
- name: Build Snes9x-1.43-15
302159
if: ${{ matrix.image == 'Snes9x-1.43-15' }}
303160
run: |
304161
cd Snes9x/1.43
305162
make -f android-release-15.mk android-apk V=1 -j`nproc`
306-
307-
- name: Copy Snes9x-1.43-15 artifact
308-
if: ${{ matrix.image == 'Snes9x-1.43-15' }}
309-
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
163+
cp target/android-release-15/build/outputs/apk/release/Snes9xEX-release.apk "../../EX-Emulators/Snes9xEX-15-${COMMIT_PREFIX}.apk"
318164
319165
- name: Build Swan.emu
320166
if: ${{ matrix.image == 'Swan.emu' }}
321167
run: |
322168
cd Swan.emu
323169
make -f android-release.mk android-apk V=1 -j`nproc`
324-
325-
- name: Copy Swan.emu artifact
326-
if: ${{ matrix.image == 'Swan.emu' }}
327-
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
170+
cp target/android-release/build/outputs/apk/release/SwanEmu-release.apk "../EX-Emulators/SwanEmu-${COMMIT_PREFIX}.apk"
336171
337172
- name: Build Saturn.emu
338173
if: ${{ matrix.image == 'Saturn.emu' }}
339174
run: |
340175
cd Saturn.emu
341176
make -f android-release.mk android-apk V=1 -j`nproc`
342-
343-
- name: Copy Saturn.emu artifact
344-
if: ${{ matrix.image == 'Saturn.emu' }}
345-
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
177+
cp target/android-release/build/outputs/apk/release/SaturnEmu-release.apk "../EX-Emulators/SaturnEmu-${COMMIT_PREFIX}.apk"
354178
355179
- name: Upload EX-Emulators artifacts
356-
uses: actions/upload-artifact@v3
180+
uses: actions/upload-artifact@v4
357181
with:
358-
name: EX-Emulators
182+
name: EX-Emulators-${{ matrix.image }}
359183
path: EX-Emulators/
360184

361185
release:
@@ -371,20 +195,24 @@ jobs:
371195
fetch-depth: 0
372196

373197
- name: Download Artifacts
374-
uses: actions/download-artifact@v3
198+
uses: actions/download-artifact@v4
375199
with:
376-
path: dist
200+
path: EX-Emulators
201+
pattern: EX-Emulators-*
202+
merge-multiple: true
377203

378-
- name: Re-zip artifacts
204+
- name: Re-ZIP artifacts
379205
run: |
380-
cd dist
381-
for artifact in *
206+
mkdir dist
207+
cd EX-Emulators
208+
for artifact in *.apk
382209
do
383-
echo "-> Creating ${artifact}.zip"
384-
pushd "$artifact"
385-
zip -r "../${artifact}.zip" *
386-
popd
210+
file_name="${artifact%.apk}"
211+
echo "-> Creating ${file_name}.zip"
212+
zip "../dist/${file_name}.zip" "${file_name}.apk"
387213
done
214+
COMMIT_PREFIX=$(echo ${{ github.sha }} | cut -c1-8)
215+
zip -r "../dist/EX-Emulators-${COMMIT_PREFIX}.zip" *.apk
388216
389217
- name: Update Git Tag
390218
run: |

0 commit comments

Comments
 (0)