summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build_arm.yml89
-rw-r--r--.github/workflows/build_iar.yml9
-rw-r--r--.github/workflows/test_hardware.yml1
3 files changed, 87 insertions, 12 deletions
diff --git a/.github/workflows/build_arm.yml b/.github/workflows/build_arm.yml
index c16fc0d45..cba9b6d99 100644
--- a/.github/workflows/build_arm.yml
+++ b/.github/workflows/build_arm.yml
@@ -7,6 +7,7 @@ on:
- 'examples/**'
- 'lib/**'
- 'hw/**'
+ - '.github/workflows/build_arm.yml'
pull_request:
branches: [ master ]
paths:
@@ -14,6 +15,7 @@ on:
- 'examples/**'
- 'lib/**'
- 'hw/**'
+ - '.github/workflows/build_arm.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
@@ -98,13 +100,12 @@ jobs:
find ${ex} -name *.map -print -quit | xargs -I % sh -c 'echo "::group::%"; linkermap -v %; echo "::endgroup::"'
done
- # Following steps are for Hardware Test with self-hosted
-
- - name: Prepare Artifacts
+ # Upload binaries for rp2040 hardware test with self-hosted
+ - name: Prepare rp2040 Artifacts
if: matrix.family == 'rp2040' && github.repository_owner == 'hathach'
run: find examples/ -name "*.elf" -exec mv {} . \;
- - name: Upload Artifacts for Hardware Test
+ - name: Upload rp2040 Artifacts
if: matrix.family == 'rp2040' && github.repository_owner == 'hathach'
uses: actions/upload-artifact@v3
with:
@@ -112,6 +113,19 @@ jobs:
path: |
*.elf
+ # Upload binaries for stm32l412nucleo hardware test with self-hosted
+ - name: Prepare stm32l4 Artifacts
+ if: matrix.family == 'stm32l4'
+ run: find examples/ -path "*stm32l412nucleo/*.elf" -exec mv {} . \;
+
+ - name: Upload stm32l4 Artifacts
+ if: matrix.family == 'stm32l4'
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ matrix.family }}
+ path: |
+ *.elf
+
# ---------------------------------------
# Build all no-family (orphaned) boards
# disable this workflow since it is often failed randomly
@@ -210,8 +224,67 @@ jobs:
./flash.sh dfu_runtime.elf
while (! (dfu-util -l | grep "Found Runtime")) && [ $SECONDS -le 5 ]; do :; done
-# - name: Test hid_boot_interface
-# run: |
-# ./flash.sh hid_boot_interface.elf
-# while (! (dfu-util -l | grep "Found Runtime")) && [ $SECONDS -le 5 ]; do :; done
+ # ---------------------------------------
+ # Hardware in the loop (HIL)
+ # Current self-hosted instance is running on an EPYC 7232 server hosted by HiFiPhile user
+ # - STM32L412 Nucleo with on-board jlink as ttyACM0
+ # ---------------------------------------
+ hw-stm32l412nucleo-test:
+ needs: build-arm
+ runs-on: [self-hosted, Linux, X64, hifiphile]
+
+ steps:
+ - name: Clean workspace
+ run: |
+ echo "Cleaning up previous run"
+ rm -rf "${{ github.workspace }}"
+ mkdir -p "${{ github.workspace }}"
+
+ - name: Download stm32l4 Artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: stm32l4
+
+ - name: Create flash.sh
+ run: |
+ echo > flash.sh 'echo halt > flash.jlink'
+ echo >> flash.sh 'echo r >> flash.jlink'
+ echo >> flash.sh 'echo loadfile $1 >> flash.jlink'
+ echo >> flash.sh 'echo r >> flash.jlink'
+ echo >> flash.sh 'echo go >> flash.jlink'
+ echo >> flash.sh 'echo exit >> flash.jlink'
+ echo >> flash.sh 'cmdout=$(JLinkExe -device stm32l412kb -if swd -JTAGConf -1,-1 -speed auto -NoGui 1 -ExitOnError 1 -CommandFile flash.jlink)'
+ echo >> flash.sh 'if (( $? )) ; then echo $cmdout ; fi'
+ chmod +x flash.sh
+ - name: Test cdc_dual_ports
+ run: |
+ ./flash.sh cdc_dual_ports.elf
+ while (! ([ -e /dev/ttyACM1 ] && [ -e /dev/ttyACM2 ])) && [ $SECONDS -le 5 ]; do :; done
+ test -e /dev/ttyACM1 && echo "ttyACM1 exists"
+ test -e /dev/ttyACM2 && echo "ttyACM2 exists"
+
+ # Debian does not auto mount usb drive. skip this test for now
+ - name: Test cdc_msc
+ if: false
+ run: |
+ ./flash.sh cdc_msc.elf
+ readme='/media/pi/TinyUSB MSC/README.TXT'
+ while (! ([ -e /dev/ttyACM1 ] && [ -f "$readme" ])) && [ $SECONDS -le 5 ]; do :; done
+ test -e /dev/ttyACM1 && echo "ttyACM1 exists"
+ test -f "$readme" && echo "$readme exists"
+ cat "$readme"
+
+ - name: Test dfu
+ run: |
+ ./flash.sh dfu.elf
+ while (! (dfu-util -l | grep "Found DFU")) && [ $SECONDS -le 5 ]; do :; done
+ dfu-util -d cafe -a 0 -U dfu0
+ dfu-util -d cafe -a 1 -U dfu1
+ grep "TinyUSB DFU! - Partition 0" dfu0
+ grep "TinyUSB DFU! - Partition 1" dfu1
+
+ - name: Test dfu_runtime
+ run: |
+ ./flash.sh dfu_runtime.elf
+ while (! (dfu-util -l | grep "Found Runtime")) && [ $SECONDS -le 5 ]; do :; done
diff --git a/.github/workflows/build_iar.yml b/.github/workflows/build_iar.yml
index 9c1bfa18a..85183751b 100644
--- a/.github/workflows/build_iar.yml
+++ b/.github/workflows/build_iar.yml
@@ -27,11 +27,12 @@ jobs:
matrix:
family:
# Alphabetical order
+ # Due to long build time, we only enable build with different usb controller
- 'stm32f0'
- - 'stm32f1'
- - 'stm32f4'
- - 'stm32f7'
- - 'stm32g4'
+ #- 'stm32f1'
+ #- 'stm32f4'
+ #- 'stm32f7'
+ #- 'stm32g4'
- 'stm32h7'
- 'stm32l4'
steps:
diff --git a/.github/workflows/test_hardware.yml b/.github/workflows/test_hardware.yml
index 601a97e99..ca626926d 100644
--- a/.github/workflows/test_hardware.yml
+++ b/.github/workflows/test_hardware.yml
@@ -21,6 +21,7 @@ on:
jobs:
stm32l412nucleo-test:
+ if: false
runs-on: [self-hosted, Linux, X64, hifiphile]
steps: