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.HwCiF4Proteus 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 runs-on: ${{matrix.runs-on}} steps: - uses: actions/setup-java@v3 with: distribution: 'zulu' java-version: '11' - uses: actions/checkout@v3 - 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}}