Skip to content

Commit f4054b5

Browse files
committed
development workflow
1 parent 21adfd2 commit f4054b5

File tree

1 file changed

+55
-51
lines changed

1 file changed

+55
-51
lines changed

.github/workflows/development.yml

Lines changed: 55 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,42 @@ on:
99
- develop
1010

1111
jobs:
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

Comments
 (0)