87 lines
3.0 KiB
YAML
87 lines
3.0 KiB
YAML
name: HW CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build-firmware:
|
|
strategy:
|
|
# Let all builds finish even if one fails early
|
|
fail-fast: false
|
|
matrix:
|
|
build-target: [f407-discovery, proteus_f4]
|
|
|
|
include:
|
|
- build-target: f407-discovery
|
|
runs-on: hw-ci-f4-discovery
|
|
test-suite: com.rusefi.HwCiF4Discovery
|
|
folder: config/boards/f407-discovery
|
|
openocd-script: ../.github/workflows/openocd_ci_f4_discovery.cfg
|
|
serial-device: /dev/serial/by-id/usb-rusEFI_LLC_rusEFI_Engine_Management_ECU_2B003B000A51343033393930-if01
|
|
|
|
- build-target: proteus_f4
|
|
runs-on: hw-ci-proteus
|
|
test-suite: com.rusefi.HwCiProteus
|
|
folder: config/boards/proteus
|
|
openocd-script: ../.github/workflows/openocd_ci_proteus_f4.cfg
|
|
serial-device: /dev/serial/by-id/usb-rusEFI_LLC_rusEFI_Engine_Management_ECU_41003D000451383037343335-if01
|
|
|
|
# it's not 100% reliable, looks like something around OpenOCD :(
|
|
# - build-target: proteus_f7
|
|
# runs-on: andrey
|
|
# test-suite: com.rusefi.HwCiProteus
|
|
# folder: config/boards/proteus
|
|
# openocd-script: ../.github/workflows/openocd_ci_proteus_f7.cfg
|
|
# serial-device: /dev/serial/by-id/usb-rusEFI_LLC_rusEFI_Engine_Management_ECU_38002B0005504B4634303120-if01
|
|
|
|
runs-on: ${{matrix.runs-on}}
|
|
|
|
steps:
|
|
- uses: actions/setup-java@v3
|
|
with:
|
|
distribution: 'zulu'
|
|
java-version: '11'
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Checkout Submodules
|
|
run: |
|
|
git submodule update --init --depth=1 firmware/ChibiOS
|
|
git submodule update --init --depth=1 firmware/ChibiOS-Contrib
|
|
git submodule update --init --depth=1 firmware/libfirmware
|
|
git submodule update --init --depth=1 firmware/ext/lua
|
|
git submodule update --init --depth=1 firmware/ext/uzlib
|
|
git submodule update --init --depth=1 firmware/controllers/lua/luaaa
|
|
git submodule update --init --depth=1 firmware/controllers/can/wideband_firmware
|
|
|
|
- name: Identify Agent
|
|
run: uname -a
|
|
|
|
- name: Acquire GCC
|
|
working-directory: ./firmware/
|
|
run: ./provide_gcc.sh
|
|
|
|
- name: Add compiler to PATH
|
|
run: echo "${GITHUB_WORKSPACE}/firmware/gcc-arm-none-eabi/bin" >> $GITHUB_PATH
|
|
|
|
# Make sure the compiler works
|
|
- name: Test/Identify Compiler
|
|
run: arm-none-eabi-gcc -v
|
|
|
|
- name: Build Firmware
|
|
run: .github/workflows/hw-ci/build_for_hw_ci.sh ${{matrix.folder}} ${{matrix.build-target}}
|
|
|
|
- name: Check for STLINK
|
|
run: lsusb | grep 'ST-LINK\|STLINK'
|
|
|
|
- name: OpenOCD wipe & flash STM32
|
|
run: .github/workflows/hw-ci/openocd_wipe_and_flash.sh ${{matrix.openocd-script}}
|
|
|
|
- name: Set EXTRA env
|
|
run: |
|
|
echo "HARDWARE_CI_SERIAL_DEVICE=${{matrix.serial-device}}" >> $GITHUB_ENV
|
|
|
|
# This both compiles and runs HW CI tests
|
|
- name: Run Hardware CI
|
|
run: .github/workflows/hw-ci/run_hw_ci.sh ${{matrix.test-suite}}
|
|
|