Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
c18b703
added GH workflow for building the firmware
brentfpage Jan 9, 2026
35e30f4
debugging avr.yml
brentfpage Jan 9, 2026
48cc3d4
trying to get avr.yml workflow to run
brentfpage Jan 9, 2026
500f4bf
still debugging avr.yml
brentfpage Jan 9, 2026
f314338
still debugging avr.yml
brentfpage Jan 9, 2026
06056ac
moved avr makefile to project root, as per -GitHub AVR make action- i…
brentfpage Jan 9, 2026
bfffef9
in the avr makefile, removed AVR_DIR, which probably is not needed by…
brentfpage Jan 9, 2026
12ab7b7
made avr.yml barebones
brentfpage Jan 9, 2026
8a14351
further simplified avr.yml
brentfpage Jan 9, 2026
9e2776a
capitalization typo
brentfpage Jan 9, 2026
8b31f94
added upload artifacts to avr.yml
brentfpage Jan 9, 2026
b9c0cc8
changed path for artifact upload in avr.yml
brentfpage Jan 9, 2026
94483f2
made 0x01 target the first
brentfpage Jan 9, 2026
3912130
made edits to firmware src files described in pull request 369
brentfpage Jan 9, 2026
12db173
instead made 0x02 target the first
brentfpage Jan 9, 2026
fbb6941
minimize changes in src
brentfpage Jan 9, 2026
68a86db
trying to add a configurable directory in which to run make
brentfpage Jan 19, 2026
9c0275b
attempt #2
brentfpage Jan 19, 2026
8b98c01
attempt #3
brentfpage Jan 19, 2026
ba48b96
attempt #4
brentfpage Jan 19, 2026
3d419ac
attempt #5
brentfpage Jan 19, 2026
6761b96
attempt #6
brentfpage Jan 19, 2026
fefa807
attempt #7
brentfpage Jan 19, 2026
5699a5d
attempt #8
brentfpage Jan 19, 2026
8b037ce
attempt #9
brentfpage Jan 19, 2026
5b47e46
attempt #10
brentfpage Jan 19, 2026
6e25da2
attempt #11
brentfpage Jan 19, 2026
399f709
added makefile back to AVR_Code
brentfpage Jan 19, 2026
559f169
worked, and now trying to not hard-code the directory
brentfpage Jan 19, 2026
73caa13
attempt b#2
brentfpage Jan 19, 2026
f30332d
attempt b#3
brentfpage Jan 19, 2026
4d5bccb
attempt b#4
brentfpage Jan 19, 2026
723e931
worked, now will try to put action-avr-make/action.yml in a different…
brentfpage Jan 19, 2026
91335ea
attempt c#1
brentfpage Jan 19, 2026
a7b296a
attempt c#2
brentfpage Jan 19, 2026
f9c97dc
attempt c#3
brentfpage Jan 19, 2026
09207db
working; also deleted obsolete workflows/action-avr-make directory in…
brentfpage Jan 19, 2026
b75690b
change variant notation to match firmware file names in genuine repo
brentfpage Jan 19, 2026
7a88ef2
trying to make both variants
brentfpage Jan 19, 2026
deed952
01 and 02 in quotes in avr workflow
brentfpage Jan 19, 2026
43862cb
typo fix
brentfpage Jan 19, 2026
da4a3c0
distinct artifact names
brentfpage Jan 19, 2026
156a0b1
added names for avr build stages
brentfpage Jan 19, 2026
282d92b
makefile paths rooted in avr_code
brentfpage Jan 19, 2026
bd38d56
updated asset paths
brentfpage Jan 19, 2026
f01c901
trying non-specified target functionality
brentfpage Jan 19, 2026
c3b2ca9
update
brentfpage Jan 20, 2026
34400fa
update
brentfpage Jan 20, 2026
b6aaf73
update
brentfpage Jan 20, 2026
07c5b4b
update
brentfpage Jan 20, 2026
b66b4a9
update
brentfpage Jan 20, 2026
5a49c0f
update
brentfpage Jan 22, 2026
4d38800
update
brentfpage Jan 22, 2026
31f8c27
testing mistakenly omitted target
brentfpage Jan 22, 2026
cbe752c
trying one zip artifact with both variants
brentfpage Jan 23, 2026
584bc6f
cont. rel. with avr.yml run; trying to use package the .hex output in…
brentfpage Jan 26, 2026
6a30b4a
typo fix
brentfpage Jan 26, 2026
165ac00
yaml syntax
brentfpage Jan 26, 2026
cd9c95b
mac.yml syntax debugging
brentfpage Jan 26, 2026
ce78bbc
mac.yml syntax debugging
brentfpage Jan 26, 2026
6b61e0e
mac.yml syntax debugging
brentfpage Jan 26, 2026
3173d96
mac.yml syntax debugging
brentfpage Jan 26, 2026
980abfa
mac.yml syntax debugging
brentfpage Jan 26, 2026
c944631
mac.yml syntax debugging
brentfpage Jan 26, 2026
a40d607
mac.yml syntax debugging
brentfpage Jan 26, 2026
7f2daf3
mac.yml syntax debugging
brentfpage Jan 26, 2026
31fe26c
mac.yml syntax debugging
brentfpage Jan 26, 2026
e19c309
mac.yml syntax debugging
brentfpage Jan 26, 2026
6d04bcc
mac.yml syntax debugging
brentfpage Jan 26, 2026
82dc167
mac.yml syntax debugging
brentfpage Jan 26, 2026
c6769dc
mac.yml syntax debugging
brentfpage Jan 26, 2026
8280406
trying paired continuous.yml and mac.yml
brentfpage Jan 26, 2026
b656728
debugging continuous.yml
brentfpage Jan 26, 2026
b3236bf
debugging continuous.yml
brentfpage Jan 26, 2026
b481af4
debugging continuous.yml
brentfpage Jan 26, 2026
b6aa7da
debugging continuous.yml
brentfpage Jan 26, 2026
a034266
debugging continuous.yml
brentfpage Jan 26, 2026
6bb5442
debugging continuous.yml
brentfpage Jan 26, 2026
b629c05
debugging continuous.yml
brentfpage Jan 26, 2026
e982ba8
debugging continuous.yml
brentfpage Jan 26, 2026
4457ce0
debugging continuous.yml
brentfpage Jan 26, 2026
7ce3957
debugging continuous.yml
brentfpage Jan 26, 2026
de6627d
debugging continuous.yml
brentfpage Jan 26, 2026
2ccdb86
debugging continuous.yml
brentfpage Jan 26, 2026
7e5b7d0
debugging continuous.yml
brentfpage Jan 26, 2026
1b43041
debugging continuous.yml
brentfpage Jan 26, 2026
b672750
debugging continuous.yml
brentfpage Jan 26, 2026
28097be
debugging continuous.yml
brentfpage Jan 26, 2026
e5e0c53
debugging continuous.yml
brentfpage Jan 26, 2026
5bbd288
debugging continuous.yml
brentfpage Jan 26, 2026
c439dd1
debugging continuous.yml
brentfpage Jan 26, 2026
cf4ed94
debugging continuous.yml
brentfpage Jan 26, 2026
9a4f972
debugging continuous.yml
brentfpage Jan 26, 2026
b24770e
debugging continuous.yml
brentfpage Jan 26, 2026
33a36b3
debugging continuous.yml
brentfpage Jan 26, 2026
9e3cf04
debugging continuous.yml
brentfpage Jan 26, 2026
2606ec9
debugging continuous.yml
brentfpage Jan 26, 2026
81c3862
debugging continuous.yml
brentfpage Jan 26, 2026
934e2be
debugging continuous.yml
brentfpage Jan 26, 2026
94915d6
debugging continuous.yml
brentfpage Jan 26, 2026
5b9ebd4
debugging continuous.yml
brentfpage Jan 26, 2026
c5286f1
debugging continuous.yml
brentfpage Jan 26, 2026
b5390f6
debugging continuous.yml
brentfpage Jan 26, 2026
9654313
debugging continuous.yml
brentfpage Jan 26, 2026
b6f1a4b
debugging continuous.yml
brentfpage Jan 26, 2026
c2e4f7d
debugging continuous.yml
brentfpage Jan 26, 2026
9c27aba
debugging continuous.yml
brentfpage Jan 26, 2026
dea5a4d
debugging continuous.yml
brentfpage Jan 26, 2026
c0b8c9f
debugging continuous.yml
brentfpage Jan 26, 2026
7f93a7c
cherry-pick Fix MacOS build in forks (#401)
mi-hol Jan 23, 2026
a8fff38
tried to cherry-pick from genuine/master
mi-hol Jan 23, 2026
d482e12
Fix MacOS build in forks (#401)
mi-hol Jan 23, 2026
9c6de20
debugging continuous.yml
brentfpage Jan 26, 2026
71d3b5b
debugging continuous.yml
brentfpage Jan 26, 2026
e502610
debugging continuous.yml
brentfpage Jan 26, 2026
b5c532e
debugging continuous.yml
brentfpage Jan 26, 2026
8cfddc1
debugging continuous.yml
brentfpage Jan 26, 2026
45a9f9e
debugging continuous.yml
brentfpage Jan 26, 2026
a6fd22c
debugging continuous.yml
brentfpage Jan 26, 2026
ee1e805
passing expected firmware version from workflow
brentfpage Jan 27, 2026
02a0bd2
debugging: passing expected firmware version from workflow
brentfpage Jan 27, 2026
1cd906f
set repo-wide AVR_VER variable from settings->(secrets and variables)…
brentfpage Jan 27, 2026
797a788
in avr.yml, passing repo-wide AVR_VER variable as the FIRMWARE_VERSIO…
brentfpage Jan 27, 2026
d4fb135
update
brentfpage Jan 27, 2026
8031581
still trying to accomodate macro definition in call to make
brentfpage Jan 27, 2026
78de592
still trying to accomodate macro definition in call to make
brentfpage Jan 27, 2026
c0ea3f6
still trying to accomodate macro definition in call to make
brentfpage Jan 27, 2026
86fe149
still trying to accomodate macro definition in call to make
brentfpage Jan 27, 2026
5c5ca3d
still trying to accomodate macro definition in call to make
brentfpage Jan 27, 2026
5ef46ee
still trying to accomodate macro definition in call to make
brentfpage Jan 27, 2026
1fd22c0
think this is working; printing out cflags in the makefile to make ve…
brentfpage Jan 27, 2026
d76ceeb
likely will not work
brentfpage Jan 27, 2026
39a6b88
restored working version
brentfpage Jan 27, 2026
edd41bf
branch mac build depending on whether workflow was called directly or…
brentfpage Jan 27, 2026
fe25afd
dont require input for mac.yml workflow_dispatch
brentfpage Jan 27, 2026
3c7b702
debugging
brentfpage Jan 27, 2026
00a8527
removed echo
brentfpage Jan 27, 2026
67cf199
add version number to hex name
brentfpage Jan 27, 2026
a5a1871
attempt 2:add version number to hex name
brentfpage Jan 27, 2026
794067d
attempt 3:add version number to hex name
brentfpage Jan 27, 2026
eba8490
attempt 4:add version number to hex name
brentfpage Jan 27, 2026
b3643bf
same thing
brentfpage Jan 27, 2026
db924b7
same thing
brentfpage Jan 27, 2026
4e7184e
same thing
brentfpage Jan 27, 2026
f4d357e
same thing
brentfpage Jan 27, 2026
547f083
same thing
brentfpage Jan 27, 2026
fd7627b
same thing
brentfpage Jan 27, 2026
9a08fcc
same thing
brentfpage Jan 27, 2026
3d19a31
same thing
brentfpage Jan 27, 2026
cf8ed60
update
brentfpage Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions .github/workflows/avr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Build firmware

permissions:
contents: read
pull-requests: write

on:
workflow_call:
outputs:
firstword:
description: the run-id of the workflow run
value: ${{ jobs.build-hex.outputs.output1 }}
workflow_dispatch:
push:


jobs:
build-hex:
runs-on: ubuntu-latest
outputs:
output1: ${{ steps.step_get_run_id.outputs.RUN_ID }}
steps:
- name : Checkout repository
uses: actions/checkout@v4

- name : make 01
uses: bazhenov/action-avr-make@v1.1
with:
dir: AVR_Code
target: '01'
env:
FIRMWARE_VERSION_ID: ${{ vars.AVR_VER }}

- name : make clean
uses: bazhenov/action-avr-make@v1.1
with:
dir: AVR_Code
target: clean_o_d

- name : make 02
uses: bazhenov/action-avr-make@v1.1
with:
dir: AVR_Code
target: '02'
env:
FIRMWARE_VERSION_ID: ${{ vars.AVR_VER }}

- name: Upload hex artifacts
uses: actions/upload-artifact@v4
with:
name: asset-hex
path: AVR_Code/labrafirm*.hex
compression-level: 0
if-no-files-found: error

- name: Prepare workflow run ID output
id: step_get_run_id
run: echo "RUN_ID=${{ github.run_id }}" >> "$GITHUB_OUTPUT"
37 changes: 26 additions & 11 deletions .github/workflows/continuous.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,27 +8,42 @@ on:
workflow_dispatch:

jobs:
build-android:
uses: ./.github/workflows/android.yml
secrets: inherit
build-linux:
uses: ./.github/workflows/linux.yml
build-avr:
uses: ./.github/workflows/avr.yml
secrets: inherit
# build-android:
# uses: ./.github/workflows/android.yml
# secrets: inherit
# needs:
# - build-avr
# build-linux:
# uses: ./.github/workflows/linux.yml
# secrets: inherit
# needs:
# - build-avr
build-mac:
needs:
- build-avr
uses: ./.github/workflows/mac.yml
with:
AVR_RUN_ID: ${{ needs.build-avr.outputs.firstword }}
secrets: inherit
build-windows:
uses: ./.github/workflows/windows.yml
secrets: inherit

# build-windows:
# uses: ./.github/workflows/windows.yml
# secrets: inherit
# needs:
# - build-avr

release:
permissions:
contents: write
needs:
- build-android
- build-linux
- build-avr
# - build-android
# - build-linux
- build-mac
- build-windows
# - build-windows
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
steps:
Expand Down
60 changes: 56 additions & 4 deletions .github/workflows/mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ permissions:
on:
workflow_dispatch:
workflow_call:
inputs:
AVR_RUN_ID:
required: true
type: string
push:
pull_request:

Expand All @@ -17,6 +21,42 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Download firmware from most recent continuous release
if: github.event.workflow != '.github/workflows/continuous.yml'
run: |
mkdir asset-hex
HEX_URL=$(gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' | jq -r '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]')
wget --directory-prefix=asset-hex $HEX_URL
env:
GH_TOKEN: ${{ github.token }}

# better alternative to the graphql query above would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset associated with the run-id using actions/download-artifact.
# query description: get at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url
# prettified (ish) query:
# query {\
# repository ( owner : "espotek-org", name: "Labrador") {\
# release ( tagName: "continuous" ) {\
# releaseAssets(first:10) {\
# nodes {\
# downloadUrl\
# }\
# }\
# }\
# }\
# }\
# ' | jq -r '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]'

- name: Download firmware from in-process continuous release
if: github.event.workflow == '.github/workflows/continuous.yml'
uses: actions/download-artifact@v4
with:
run-id: ${{ inputs.AVR_RUN_ID }}
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: move firmware to appropriate directory
run: |
mv asset-hex/*02.hex Desktop_Interface/resources/firmware

- name: Setup Homebrew dependencies
run: |
brew update
Expand All @@ -27,25 +67,28 @@ jobs:
- name: Build librador
working-directory: Librador_API/___librador/librador
run: |
qmake -config release
qmake -config release EXPECTED_FIRMWARE_VERSION=${{ vars.AVR_VER }}
make -j$(sysctl -n hw.ncpu)

- name: Build librademo
working-directory: Librador_API/___librador/librademo
run: |
qmake -config release
qmake -config release EXPECTED_FIRMWARE_VERSION=${{ vars.AVR_VER }}
make -j$(sysctl -n hw.ncpu)

- name: Build basicdemo
working-directory: Librador_API/___librador/basicdemo
run: |
qmake -config release
qmake -config release EXPECTED_FIRMWARE_VERSION=${{ vars.AVR_VER }}
make -j$(sysctl -n hw.ncpu)

- name: Import code signing certificate
env:
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
# secrets are only provided in original repo
if: env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != ''
working-directory: Desktop_Interface
run: |
# Create keychain
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
Expand All @@ -67,12 +110,18 @@ jobs:
- name: Build macOS app
working-directory: Desktop_Interface
run: |
qmake -config release
if ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ); then
qmake -config release EXPECTED_FIRMWARE_VERSION=${{ vars.AVR_VER }}
else
# for debugging
qmake -config debug EXPECTED_FIRMWARE_VERSION=${{ vars.AVR_VER }}
fi
make -j$(sysctl -n hw.ncpu)
macdeployqt Labrador.app -verbose=2 -libpath=build_mac/libdfuprog/lib/

- name: Code sign app bundle
working-directory: Desktop_Interface
if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' )
run: |
# Find the signing identity
IDENTITY=$(security find-identity -v -p codesigning | grep "Developer ID Application" | head -1 | awk -F'"' '{print $2}')
Expand All @@ -92,6 +141,7 @@ jobs:

- name: Create and sign DMG
working-directory: Desktop_Interface
if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' )
run: |
# Get the git hash for the filename
GIT_HASH=$(git rev-parse --short HEAD)
Expand Down Expand Up @@ -122,6 +172,7 @@ jobs:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' )
run: |
GIT_HASH=$(git rev-parse --short HEAD)
DMG_PATH="Labrador-${GIT_HASH}.dmg"
Expand All @@ -144,6 +195,7 @@ jobs:
spctl -a -vvv -t install "$DMG_PATH"

- name: Upload artifacts
if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' )
uses: actions/upload-artifact@v4
with:
name: asset-dmg
Expand Down
Loading