Skip to content

Commit 9f1eb84

Browse files
committed
GitHub: Add actions to automate the build of release
When something is tagged for release, automate the build. Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
1 parent b11137b commit 9f1eb84

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed

.github/workflows/build.yml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,17 @@ name: Build DB48X
33
on:
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+
1217
jobs:
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

Comments
 (0)