@@ -285,56 +285,115 @@ 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+ # Setup frontend directories for each platform
304+ for platform in release-linux release-windows release-macos release-macos-arm64; do
305+ mkdir -p $platform/frontends/ethernet-view
306+ mkdir -p $platform/frontends/control-station
307+ done
308+
309+ - name : Organize Linux release files
310+ run : |
311+ VERSION="${{ github.event.inputs.version || github.event.release.tag_name || 'latest' }}"
312+
313+ # Copy Linux backend
314+ cp artifacts/backend-linux/backend-linux-amd64 release-linux/backend
310315
311316 # Copy Linux updater
312- cp artifacts/updater-linux/updater-linux-amd64 release/linux/updater
317+ cp artifacts/updater-linux/updater-linux-amd64 release-linux/updater
318+
319+ # Copy frontends
320+ cp -r artifacts/ethernet-view/* release-linux/frontends/ethernet-view/
321+ cp -r artifacts/control-station/* release-linux/frontends/control-station/
322+
323+ # Copy common files
324+ cp -r artifacts/common-files/* release-linux/
325+
326+ # Create Linux release archive
327+ cd release-linux
328+ zip -r ../software-release-linux-$VERSION.zip .
329+
330+ - name : Organize Windows release files
331+ run : |
332+ VERSION="${{ github.event.inputs.version || github.event.release.tag_name || 'latest' }}"
333+
334+ # Copy Windows backend
335+ cp artifacts/backend-windows/backend-windows-amd64.exe release-windows/backend.exe
313336
314337 # Copy Windows updater
315- cp artifacts/updater-windows/updater-windows-amd64.exe release/ windows/updater.exe
338+ cp artifacts/updater-windows/updater-windows-amd64.exe release- windows/updater.exe
316339
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
340+ # Copy frontends
341+ cp -r artifacts/ethernet-view/* release-windows/frontends/ethernet-view/
342+ cp -r artifacts/control-station/* release-windows/frontends/control-station/
343+
344+ # Copy common files
345+ cp -r artifacts/common-files/* release-windows/
346+
347+ # Create Windows release archive
348+ cd release-windows
349+ zip -r ../software-release-windows-$VERSION.zip .
350+
351+ - name : Organize macOS Intel release files
352+ run : |
353+ VERSION="${{ github.event.inputs.version || github.event.release.tag_name || 'latest' }}"
354+
355+ # Copy macOS Intel backend
356+ cp artifacts/backend-macos/backend-macos-amd64 release-macos/backend
357+
358+ # Copy macOS Intel updater
359+ cp artifacts/updater-macos/updater-macos-amd64 release-macos/updater
320360
321361 # Copy frontends
322- cp -r artifacts/ethernet-view/* release/frontends/ethernet-view/
323- cp -r artifacts/control-station/* release/frontends/control-station/
362+ cp -r artifacts/ethernet-view/* release-macos /frontends/ethernet-view/
363+ cp -r artifacts/control-station/* release-macos /frontends/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 ../software-release-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+ cp -r artifacts/ethernet-view/* release-macos-arm64/frontends/ethernet-view/
384+ cp -r artifacts/control-station/* release-macos-arm64/frontends/control-station/
385+
386+ # Copy common files
387+ cp -r artifacts/common-files/* release-macos-arm64/
388+
389+ # Create macOS ARM64 release archive
390+ cd release-macos-arm64
391+ zip -r ../software-release-macos-arm64-$VERSION.zip .
333392
334- - name : Upload release package
393+ - name : Upload release packages
335394 uses : actions/upload-artifact@v4
336395 with :
337- name : software-release
396+ name : software-releases
338397 path : software-release-*.zip
339398 retention-days : 7
340399 compression-level : 9
@@ -351,24 +410,90 @@ jobs:
351410 draft : ${{ github.event.inputs.draft }}
352411 prerelease : false
353412
354- - name : Upload to workflow dispatch release
413+ - name : Upload Linux package to release
414+ if : github.event_name == 'workflow_dispatch'
415+ uses : actions/upload-release-asset@v1
416+ env :
417+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
418+ with :
419+ upload_url : ${{ steps.create_release.outputs.upload_url }}
420+ asset_path : ./software-release-linux-${{ github.event.inputs.version }}.zip
421+ asset_name : software-release-linux-${{ github.event.inputs.version }}.zip
422+ asset_content_type : application/zip
423+
424+ - name : Upload Windows package to release
355425 if : github.event_name == 'workflow_dispatch'
356426 uses : actions/upload-release-asset@v1
357427 env :
358428 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
359429 with :
360430 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
431+ asset_path : ./software-release-windows-${{ github.event.inputs.version }}.zip
432+ asset_name : software-release-windows-${{ github.event.inputs.version }}.zip
433+ asset_content_type : application/zip
434+
435+ - name : Upload macOS Intel package to release
436+ if : github.event_name == 'workflow_dispatch'
437+ uses : actions/upload-release-asset@v1
438+ env :
439+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
440+ with :
441+ upload_url : ${{ steps.create_release.outputs.upload_url }}
442+ asset_path : ./software-release-macos-intel-${{ github.event.inputs.version }}.zip
443+ asset_name : software-release-macos-intel-${{ github.event.inputs.version }}.zip
444+ asset_content_type : application/zip
445+
446+ - name : Upload macOS ARM64 package to release
447+ if : github.event_name == 'workflow_dispatch'
448+ uses : actions/upload-release-asset@v1
449+ env :
450+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
451+ with :
452+ upload_url : ${{ steps.create_release.outputs.upload_url }}
453+ asset_path : ./software-release-macos-arm64-${{ github.event.inputs.version }}.zip
454+ asset_name : software-release-macos-arm64-${{ github.event.inputs.version }}.zip
455+ asset_content_type : application/zip
456+
457+ - name : Upload Linux package to existing release
458+ if : github.event_name == 'release'
459+ uses : actions/upload-release-asset@v1
460+ env :
461+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
462+ with :
463+ upload_url : ${{ github.event.release.upload_url }}
464+ asset_path : ./software-release-linux-${{ github.event.release.tag_name }}.zip
465+ asset_name : software-release-linux-${{ github.event.release.tag_name }}.zip
466+ asset_content_type : application/zip
467+
468+ - name : Upload Windows package to existing release
469+ if : github.event_name == 'release'
470+ uses : actions/upload-release-asset@v1
471+ env :
472+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
473+ with :
474+ upload_url : ${{ github.event.release.upload_url }}
475+ asset_path : ./software-release-windows-${{ github.event.release.tag_name }}.zip
476+ asset_name : software-release-windows-${{ github.event.release.tag_name }}.zip
477+ asset_content_type : application/zip
478+
479+ - name : Upload macOS Intel package to existing release
480+ if : github.event_name == 'release'
481+ uses : actions/upload-release-asset@v1
482+ env :
483+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
484+ with :
485+ upload_url : ${{ github.event.release.upload_url }}
486+ asset_path : ./software-release-macos-intel-${{ github.event.release.tag_name }}.zip
487+ asset_name : software-release-macos-intel-${{ github.event.release.tag_name }}.zip
363488 asset_content_type : application/zip
364489
365- - name : Upload to existing release
490+ - name : Upload macOS ARM64 package to existing release
366491 if : github.event_name == 'release'
367492 uses : actions/upload-release-asset@v1
368493 env :
369494 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
370495 with :
371496 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
497+ asset_path : ./software-release-macos-arm64- ${{ github.event.release.tag_name }}.zip
498+ asset_name : software-release-macos-arm64- ${{ github.event.release.tag_name }}.zip
374499 asset_content_type : application/zip
0 commit comments