@@ -285,57 +285,118 @@ jobs:
285285 needs : [build-backend, build-frontend, build-updater, prepare-common-files]
286286 runs-on : ubuntu-latest
287287 steps :
288- - name : Create release directories
289- run : |
290- mkdir -p release
291- mkdir -p release/backends
292- mkdir -p release/updaters
293- mkdir -p release/frontends/ethernet-view
294- mkdir -p release/frontends/control-station
295-
296288 - name : Download all artifacts
297289 uses : actions/download-artifact@v4
298290 with :
299291 path : artifacts
300292
301- - name : Organize release files
293+ - name : Create release directories for each platform
302294 run : |
303- # Copy backends
304- cp -r artifacts/backend-linux/* release/backends/
305- cp -r artifacts/backend-windows/* release/backends/
306- cp -r artifacts/backend-macos/* release/backends/
295+ VERSION="${{ github.event.inputs.version || github.event.release.tag_name || 'latest' }}"
307296
308- # Copy updaters to appropriate folders by platform
309- mkdir -p release/linux release/windows release/macos release/macos-arm64
297+ # Create directory structure for each platform
298+ mkdir -p release-linux
299+ mkdir -p release-windows
300+ mkdir -p release-macos
301+ mkdir -p release-macos-arm64
302+
303+ - name : Organize Linux release files
304+ run : |
305+ VERSION="${{ github.event.inputs.version || github.event.release.tag_name || 'latest' }}"
306+
307+ # Copy Linux backend
308+ cp artifacts/backend-linux/backend-linux-amd64 release-linux/backend
310309
311310 # Copy Linux updater
312- cp artifacts/updater-linux/updater-linux-amd64 release/linux/updater
311+ cp artifacts/updater-linux/updater-linux-amd64 release-linux/updater
312+
313+ # Copy frontends
314+ mkdir -p release-linux/ethernet-view
315+ mkdir -p release-linux/control-station
316+ cp -r artifacts/ethernet-view/* release-linux/ethernet-view/
317+ cp -r artifacts/control-station/* release-linux/control-station/
318+
319+ # Copy common files
320+ cp -r artifacts/common-files/* release-linux/
321+
322+ # Create Linux release archive
323+ cd release-linux
324+ zip -r ../linux-$VERSION.zip .
325+
326+ - name : Organize Windows release files
327+ run : |
328+ VERSION="${{ github.event.inputs.version || github.event.release.tag_name || 'latest' }}"
329+
330+ # Copy Windows backend
331+ cp artifacts/backend-windows/backend-windows-amd64.exe release-windows/backend.exe
313332
314333 # Copy Windows updater
315- cp artifacts/updater-windows/updater-windows-amd64.exe release/ windows/updater.exe
334+ cp artifacts/updater-windows/updater-windows-amd64.exe release- windows/updater.exe
316335
317- # Copy macOS updaters
318- cp artifacts/updater-macos/updater-macos-amd64 release/macos/updater
319- cp artifacts/updater-macos/updater-macos-arm64 release/macos-arm64/updater
336+ # Copy frontends
337+ mkdir -p release-windows/ethernet-view
338+ mkdir -p release-windows/control-station
339+ cp -r artifacts/ethernet-view/* release-windows/ethernet-view/
340+ cp -r artifacts/control-station/* release-windows/control-station/
341+
342+ # Copy common files
343+ cp -r artifacts/common-files/* release-windows/
344+
345+ # Create Windows release archive
346+ cd release-windows
347+ zip -r ../windows-$VERSION.zip .
348+
349+ - name : Organize macOS Intel release files
350+ run : |
351+ VERSION="${{ github.event.inputs.version || github.event.release.tag_name || 'latest' }}"
352+
353+ # Copy macOS Intel backend
354+ cp artifacts/backend-macos/backend-macos-amd64 release-macos/backend
355+
356+ # Copy macOS Intel updater
357+ cp artifacts/updater-macos/updater-macos-amd64 release-macos/updater
320358
321359 # Copy frontends
322- cp -r artifacts/ethernet-view/* release/frontends/ethernet-view/
323- cp -r artifacts/control-station/* release/frontends/control-station/
360+ mkdir -p release-macos/ethernet-view
361+ mkdir -p release-macos/control-station
362+ cp -r artifacts/ethernet-view/* release-macos/ethernet-view/
363+ cp -r artifacts/control-station/* release-macos/control-station/
324364
325365 # Copy common files
326- cp -r artifacts/common-files/* release/
366+ cp -r artifacts/common-files/* release-macos/
367+
368+ # Create macOS Intel release archive
369+ cd release-macos
370+ zip -r ../macos-intel-$VERSION.zip .
327371
328- - name : Create release archive
372+ - name : Organize macOS ARM64 release files
329373 run : |
330374 VERSION="${{ github.event.inputs.version || github.event.release.tag_name || 'latest' }}"
331- cd release
332- zip -r ../software-release-$VERSION.zip .
375+
376+ # Copy macOS ARM64 backend
377+ cp artifacts/backend-macos/backend-macos-arm64 release-macos-arm64/backend
378+
379+ # Copy macOS ARM64 updater
380+ cp artifacts/updater-macos/updater-macos-arm64 release-macos-arm64/updater
381+
382+ # Copy frontends
383+ mkdir -p release-macos-arm64/ethernet-view
384+ mkdir -p release-macos-arm64/control-station
385+ cp -r artifacts/ethernet-view/* release-macos-arm64/ethernet-view/
386+ cp -r artifacts/control-station/* release-macos-arm64/control-station/
387+
388+ # Copy common files
389+ cp -r artifacts/common-files/* release-macos-arm64/
390+
391+ # Create macOS ARM64 release archive
392+ cd release-macos-arm64
393+ zip -r ../macos-arm64-$VERSION.zip .
333394
334- - name : Upload release package
395+ - name : Upload release packages
335396 uses : actions/upload-artifact@v4
336397 with :
337- name : software-release
338- path : software-release- *.zip
398+ name : releases
399+ path : " *.zip"
339400 retention-days : 7
340401 compression-level : 9
341402
@@ -351,24 +412,90 @@ jobs:
351412 draft : ${{ github.event.inputs.draft }}
352413 prerelease : false
353414
354- - name : Upload to workflow dispatch release
415+ - name : Upload Linux package to release
416+ if : github.event_name == 'workflow_dispatch'
417+ uses : actions/upload-release-asset@v1
418+ env :
419+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
420+ with :
421+ upload_url : ${{ steps.create_release.outputs.upload_url }}
422+ asset_path : ./linux-${{ github.event.inputs.version }}.zip
423+ asset_name : linux-${{ github.event.inputs.version }}.zip
424+ asset_content_type : application/zip
425+
426+ - name : Upload Windows package to release
355427 if : github.event_name == 'workflow_dispatch'
356428 uses : actions/upload-release-asset@v1
357429 env :
358430 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
359431 with :
360432 upload_url : ${{ steps.create_release.outputs.upload_url }}
361- asset_path : ./software-release-${{ github.event.inputs.version }}.zip
362- asset_name : software-release-${{ github.event.inputs.version }}.zip
433+ asset_path : ./windows-${{ github.event.inputs.version }}.zip
434+ asset_name : windows-${{ github.event.inputs.version }}.zip
435+ asset_content_type : application/zip
436+
437+ - name : Upload macOS Intel package to release
438+ if : github.event_name == 'workflow_dispatch'
439+ uses : actions/upload-release-asset@v1
440+ env :
441+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
442+ with :
443+ upload_url : ${{ steps.create_release.outputs.upload_url }}
444+ asset_path : ./macos-intel-${{ github.event.inputs.version }}.zip
445+ asset_name : macos-intel-${{ github.event.inputs.version }}.zip
446+ asset_content_type : application/zip
447+
448+ - name : Upload macOS ARM64 package to release
449+ if : github.event_name == 'workflow_dispatch'
450+ uses : actions/upload-release-asset@v1
451+ env :
452+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
453+ with :
454+ upload_url : ${{ steps.create_release.outputs.upload_url }}
455+ asset_path : ./macos-arm64-${{ github.event.inputs.version }}.zip
456+ asset_name : macos-arm64-${{ github.event.inputs.version }}.zip
457+ asset_content_type : application/zip
458+
459+ - name : Upload Linux package to existing release
460+ if : github.event_name == 'release'
461+ uses : actions/upload-release-asset@v1
462+ env :
463+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
464+ with :
465+ upload_url : ${{ github.event.release.upload_url }}
466+ asset_path : ./linux-${{ github.event.release.tag_name }}.zip
467+ asset_name : linux-${{ github.event.release.tag_name }}.zip
468+ asset_content_type : application/zip
469+
470+ - name : Upload Windows package to existing release
471+ if : github.event_name == 'release'
472+ uses : actions/upload-release-asset@v1
473+ env :
474+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
475+ with :
476+ upload_url : ${{ github.event.release.upload_url }}
477+ asset_path : ./windows-${{ github.event.release.tag_name }}.zip
478+ asset_name : windows-${{ github.event.release.tag_name }}.zip
479+ asset_content_type : application/zip
480+
481+ - name : Upload macOS Intel package to existing release
482+ if : github.event_name == 'release'
483+ uses : actions/upload-release-asset@v1
484+ env :
485+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
486+ with :
487+ upload_url : ${{ github.event.release.upload_url }}
488+ asset_path : ./macos-intel-${{ github.event.release.tag_name }}.zip
489+ asset_name : macos-intel-${{ github.event.release.tag_name }}.zip
363490 asset_content_type : application/zip
364491
365- - name : Upload to existing release
492+ - name : Upload macOS ARM64 package to existing release
366493 if : github.event_name == 'release'
367494 uses : actions/upload-release-asset@v1
368495 env :
369496 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
370497 with :
371498 upload_url : ${{ github.event.release.upload_url }}
372- asset_path : ./software-release -${{ github.event.release.tag_name }}.zip
373- asset_name : software-release -${{ github.event.release.tag_name }}.zip
499+ asset_path : ./macos-arm64 -${{ github.event.release.tag_name }}.zip
500+ asset_name : macos-arm64 -${{ github.event.release.tag_name }}.zip
374501 asset_content_type : application/zip
0 commit comments