99 - develop
1010
1111jobs :
12+ create-release :
13+ runs-on : ubuntu-latest
14+ outputs :
15+ upload_url : ${{ steps.create_release.outputs.upload_url }}
16+ tag_name : ${{ steps.vars.outputs.tag_name }}
17+ steps :
18+ - name : Checkout code
19+ uses : actions/checkout@v4
20+
21+ - name : Generate date-based tag
22+ id : vars
23+ run : echo "tag_name=dev-$(date +'%Y%m%d')" >> $GITHUB_OUTPUT
24+
25+ - name : Configure Git
26+ run : |
27+ git config user.name "github-actions[bot]"
28+ git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
29+
30+ - name : Create and push tag
31+ run : |
32+ git tag -f ${{ steps.vars.outputs.tag_name }}
33+ git push origin ${{ steps.vars.outputs.tag_name }} --force
34+
35+ - name : Create GitHub Release
36+ id : create_release
37+ uses : actions/create-release@v1
38+ with :
39+ tag_name : ${{ steps.vars.outputs.tag_name }}
40+ release_name : Development Build ${{ steps.vars.outputs.tag_name }}
41+ draft : false
42+ prerelease : true
43+ env :
44+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
45+
1246 Arduino-build :
47+ needs : create-release
1348 runs-on : ubuntu-latest
1449 steps :
1550 - name : Checkout code
@@ -47,39 +82,22 @@ jobs:
4782 --output-dir build-out \
4883 Source/HamMessenger
4984
50- # - name: List everything in build output
51- # run: |
52- # find Source/HamMessenger/build-out
53-
54- # - name: List all .hex files
55- # run: |
56- # find . -name "*.hex"
57-
5885 - name : Rename firmware file for release
5986 run : |
6087 mkdir -p output
6188 cp build-out/HamMessenger.ino.hex output/HamMessenger-mega2560.hex
6289
63- - name : Generate changelog from recent commits
64- run : |
65- git log -n 20 --pretty=format:"- %s" > release-notes.txt
66- # git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:"- %s" # changelog between the last nightly and now
67- # git log -n 20 --pretty=format:"- %s (%an, %ad)" --date=short # include author names or dates
68-
69- - name : Upload latest dev firmware to release
70- uses : ncipollo/release-action@v1
90+ - name : Upload Arduino firmware
91+ uses : actions/upload-release-asset@v1
7192 with :
72- tag : dev
73- name : Development Build
74- prerelease : true
75- draft : false
76- allowUpdates : true
77- artifacts : output/HamMessenger-mega2560.hex
78- bodyFile : release-notes.txt
93+ upload_url : ${{ needs.create-release.outputs.upload_url }}
94+ asset_path : output/HamMessenger-mega2560.hex
95+ asset_name : HamMessenger-mega2560.hex
96+ asset_content_type : application/octet-stream
7997
8098 gui-windows-build :
99+ needs : create-release
81100 runs-on : windows-latest
82-
83101 steps :
84102 - name : Checkout code
85103 uses : actions/checkout@v4
@@ -104,19 +122,17 @@ jobs:
104122 mkdir output
105123 copy Source\GUI\dist\HamMessenger.exe output\HamMessenger-windows.exe
106124
107- - name : Upload GUI to latest dev release
108- uses : ncipollo/ release-action @v1
125+ - name : Upload Windows GUI
126+ uses : actions/upload- release-asset @v1
109127 with :
110- tag : dev
111- name : Development Build
112- prerelease : true
113- draft : false
114- allowUpdates : true
115- artifacts : output/HamMessenger-windows.exe
128+ upload_url : ${{ needs.create-release.outputs.upload_url }}
129+ asset_path : output/HamMessenger-windows.exe
130+ asset_name : HamMessenger-windows.exe
131+ asset_content_type : application/octet-stream
116132
117133 gui-mac-build :
134+ needs : create-release
118135 runs-on : macos-latest
119-
120136 steps :
121137 - name : Checkout code
122138 uses : actions/checkout@v4
@@ -131,10 +147,6 @@ jobs:
131147 pip install -r Source/GUI/requirements-macos.txt
132148 pip install -U pyinstaller
133149
134- # - name: Verify tkinter is available
135- # run: |
136- # python -c "import tkinter; print('Tkinter OK:', tkinter.TkVersion)"
137-
138150 - name : Build macOS GUI with PyInstaller
139151 run : |
140152 cd Source/GUI
@@ -157,18 +169,10 @@ jobs:
157169 output/HamMessenger-mac.dmg \
158170 Source/GUI/dist/HamMessenger.app
159171
160- # - name: Zip macOS .app bundle
161- # run: |
162- # mkdir -p output
163- # ditto -c -k --sequesterRsrc --keepParent Source/GUI/dist/HamMessenger.app output/HamMessenger-mac.zip
164-
165- - name : Upload macOS GUI to latest dev release
166- uses : ncipollo/release-action@v1
172+ - name : Upload macOS GUI
173+ uses : actions/upload-release-asset@v1
167174 with :
168- tag : dev
169- name : Development Build
170- prerelease : true
171- draft : false
172- allowUpdates : true
173- # artifacts: output/HamMessenger-mac.zip
174- artifacts : output/HamMessenger-mac.dmg
175+ upload_url : ${{ needs.create-release.outputs.upload_url }}
176+ asset_path : output/HamMessenger-mac.dmg
177+ asset_name : HamMessenger-mac.dmg
178+ asset_content_type : application/octet-stream
0 commit comments