Skip to content

Merge branch 'main' of https://github.com/PokemonAutomation/Arduino-S… #5581

Merge branch 'main' of https://github.com/PokemonAutomation/Arduino-S…

Merge branch 'main' of https://github.com/PokemonAutomation/Arduino-S… #5581

name: C++ CI Serial Programs
on: [push, pull_request, workflow_dispatch]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-2025, macos-15, macos-15-intel, ubuntu-24.04]
compiler: ['default', 'clang']
qt_version: ['6.10.1']
include:
- qt_version: '6.10.1'
qt_version_major: '6'
qt_modules: 'qtmultimedia qtserialport'
- os: 'windows-2025'
compiler: 'clang'
cmake_additional_param: '-T ClangCL'
- os: 'ubuntu-24.04'
compiler: 'clang'
cmake_additional_param: '-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++'
exclude:
- os: 'macos-15'
compiler: 'clang'
- os: 'macos-15-intel'
compiler: 'clang'
# Excluded because macos default toolset is already clang
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- uses: jurplel/install-qt-action@v4
with:
version: ${{ matrix.qt_version }}
modules: ${{ matrix.qt_modules }}
- name: Install dependencies
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt update
sudo apt upgrade
sudo apt install libopencv-dev
- name: Install dependencies
if: startsWith(matrix.os, 'mac')
run: |
brew install opencv onnxruntime
- name: Generate binaries
run: |
cd SerialPrograms
mkdir bin
cd bin
cmake .. -DQT_MAJOR:STRING=${{ matrix.qt_version_major }} ${{ matrix.cmake_additional_param }}
cmake --build . --config RelWithDebInfo --parallel 10
- name: Prepare upload folder
if: startsWith(matrix.os, 'windows')
run: |
del SerialPrograms/bin/RelWithDebInfo/SerialProgramsLib.lib
echo https://github.com/${{github.repository}}/commit/${{github.sha}} > SerialPrograms/bin/RelWithDebInfo/version.txt
- uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'windows')
with:
name: Serial Programs (os=${{ matrix.os }} - compiler=${{ matrix.compiler }} - qt_version=${{ matrix.qt_version }})
path: SerialPrograms/bin/RelWithDebInfo