@@ -3,12 +3,17 @@ name: Build DB48X
33on :
44 push :
55 branches : [ stable, dev ]
6+ tags :
7+ - ' v[0-9]+.[0-9]+.[0-9]'
68 pull_request :
79 branches : [ stable, dev ]
810 workflow_dispatch :
911 release :
1012 types : [ published ]
1113
14+ permissions :
15+ contents : write
16+
1217jobs :
1318 build-simulator-macos :
1419 name : Build Simulator (macOS)
@@ -715,3 +720,88 @@ jobs:
715720 db48x-wasm-*.tar.gz
716721 db48x-simulator-macos-*.zip
717722 db50x-color-simulator-macos-*.zip
723+
724+ create-release :
725+ name : Create Release and Upload Assets
726+ if : github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
727+ needs : [
728+ build-simulator-macos,
729+ build-simulator-linux,
730+ build-simulator-windows,
731+ build-color-simulator-macos,
732+ build-color-simulator-linux,
733+ build-color-simulator-windows,
734+ build-android,
735+ build-color-android,
736+ build-wasm,
737+ build-dm42-firmware,
738+ build-dm32-firmware,
739+ build-dm42n-firmware
740+ ]
741+ runs-on : ubuntu-latest
742+
743+ steps :
744+ - name : Checkout code
745+ uses : actions/checkout@v4
746+ with :
747+ fetch-depth : 0 # Fetch full history for tag access
748+
749+ - name : Download all artifacts
750+ uses : actions/download-artifact@v4
751+ with :
752+ path : artifacts/
753+
754+ - name : Zip Linux artifacts # Zip for consistency (macOS is already zipped)
755+ run : |
756+ mkdir -p releases
757+ cd artifacts/db48x-simulator-linux
758+ zip -r ../../releases/db48x-linux.zip *
759+ cd ../db50x-color-simulator-linux
760+ zip -r ../../releases/db50x-linux.zip *
761+
762+ - name : Zip Windows artifacts
763+ run : |
764+ cd artifacts/db48x-simulator-windows
765+ zip -r ../../releases/db48x-windows.zip *
766+ cd ../db50x-color-simulator-windows
767+ zip -r ../../releases/db50x-windows.zip *
768+
769+ - name : Move macOS artifacts (already zipped)
770+ run : |
771+ mv artifacts/db48x-simulator-macos/db48x-macos.zip releases/
772+ mv artifacts/db50x-color-simulator-macos/db50x-macos.zip releases/
773+
774+ - name : Move DM32, DM42 and DM42n firmware artifacts
775+ run : |
776+ mv artifacts/db48x-dm42-*.tar.gz releases/db48x-dm42.tar.gz
777+ mv artifacts/db50x-dm32-*.tar.gz releases/db50x-dm32.tar.gz
778+ mv artifacts/db50x-dm42n-*.tar.gz releases/db50x-dm42n.tar.gz
779+
780+ - name : Move Android artifacts
781+ run : |
782+ mv artifacts/db48x-android-*.tar.gz releases/db48x-android.tar.gz
783+ mv artifacts/db50x-android-*.tar.gz releases/db50x-android.tar.gz
784+
785+ - name : Extract tag message for release body
786+ run : |
787+ git fetch --tags
788+ git tag -l --format='%(contents)' "${{ github.ref_name }}" > release_notes.md
789+
790+ - name : Create Release and Upload Assets
791+ uses : softprops/action-gh-release@v2
792+ with :
793+ tag_name : ${{ github.ref_name }}
794+ name : ${{ github.ref_name }}
795+ body_path : release_notes.md
796+ files : |
797+ releases/db48x-macos.zip
798+ releases/db48x-linux.zip
799+ releases/db48x-windows.zip
800+ releases/db50x-macos.zip
801+ releases/db50x-linux.zip
802+ releases/db50x-windows.zip
803+ releases/db48x-dm32.tar.gz
804+ releases/db48x-dm42.tar.gz
805+ releases/db48x-dm42n.tar.gz
806+ releases/db48x-android.tar.gz
807+ releases/db50x-android.tar.gz
0 commit comments