Implement samx7x host #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Hardware Test | |
on: | |
push: | |
paths: | |
- 'src/**' | |
- 'examples/**' | |
- 'lib/**' | |
- 'hw/**' | |
pull_request: | |
branches: [ master ] | |
paths: | |
- 'src/**' | |
- 'examples/**' | |
- 'lib/**' | |
- 'hw/**' | |
# 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 | |
jobs: | |
stm32l412nucleo-test: | |
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: Checkout TinyUSB | |
uses: actions/checkout@v3 | |
- name: Get Dependencies and Build | |
run: | | |
git submodule update --init lib/FreeRTOS-Kernel lib/lwip | |
python3 tools/get_dependencies.py stm32l4 | |
python3 tools/build_family.py stm32l4 | |
- name: Pick-up elf files | |
run: | | |
mkdir stm32l412nucleo/ | |
find examples/ -path "*stm32l412nucleo/*.elf" -exec mv {} stm32l412nucleo/ \; | |
- name: Create flash.sh | |
run: | | |
echo > flash.sh 'echo halt > flash.jlink' | |
echo >> flash.sh 'echo r >> flash.jlink' | |
echo >> flash.sh 'echo loadfile stm32l412nucleo/$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 | |
# - name: Test hid_boot_interface | |
# run: | | |
# ./flash.sh hid_boot_interface.elf | |
# while (! (dfu-util -l | grep "Found Runtime")) && [ $SECONDS -le 5 ]; do :; done |