name: Build on: push: branches: [ '*' ] pull_request: branches: [ master ] workflow_dispatch: jobs: build_linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Arduino CLI run: curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=/usr/local/bin sh - name: Build firmware env: ARDUINO_SKETCH_ALWAYS_EXPORT_BINARIES: 1 run: make - name: Upload binaries uses: actions/upload-artifact@v4 with: name: firmware-binary path: flix/build - name: Build firmware for ESP32-S3 run: make BOARD=esp32:esp32:esp32s3 - name: Build firmware with WiFi disabled run: sed -i 's/^#define WIFI_ENABLED 1$/#define WIFI_ENABLED 0/' flix/flix.ino && make - name: Check c_cpp_properties.json run: tools/check_c_cpp_properties.py build_macos: runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Install Arduino CLI run: brew install arduino-cli - name: Build firmware run: make - name: Check c_cpp_properties.json run: tools/check_c_cpp_properties.py build_windows: runs-on: windows-latest steps: - uses: actions/checkout@v4 - name: Install Arduino CLI run: choco install arduino-cli - name: Install Make run: choco install make - name: Build firmware run: make - name: Check c_cpp_properties.json run: python3 tools/check_c_cpp_properties.py build_simulator: runs-on: ubuntu-latest container: image: ubuntu:20.04 steps: - name: Install dependencies run: | apt-get update DEBIAN_FRONTEND=noninteractive apt-get install -y curl wget build-essential cmake g++ pkg-config gnupg2 lsb-release sudo - name: Install Arduino CLI uses: arduino/setup-arduino-cli@v1.1.1 - uses: actions/checkout@v4 - name: Install Gazebo run: | sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list' wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - sudo apt-get update sudo apt-get install -y gazebo11 libgazebo11-dev - name: Install SDL2 run: sudo apt-get install -y libsdl2-dev - name: Build simulator run: make build_simulator - uses: actions/upload-artifact@v4 with: name: gazebo-plugin-binary path: gazebo/build/*.so retention-days: 1 build_simulator_macos: runs-on: macos-latest if: github.event_name == 'workflow_dispatch' steps: - name: Install Arduino CLI run: brew install arduino-cli - uses: actions/checkout@v4 - name: Clean up python binaries # Workaround for https://github.com/actions/setup-python/issues/577 run: | rm -f /usr/local/bin/2to3* rm -f /usr/local/bin/idle3* rm -f /usr/local/bin/pydoc3* rm -f /usr/local/bin/python3* rm -f /usr/local/bin/python3*-config - name: Install Gazebo run: brew update && brew tap osrf/simulation && brew install gazebo11 - name: Install SDL2 run: brew install sdl2 - name: Build simulator run: make build_simulator