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 without Wi-Fi 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-22.04 steps: - name: Install Arduino CLI uses: arduino/setup-arduino-cli@v1.1.1 - uses: actions/checkout@v4 - name: Install Gazebo run: curl -sSL http://get.gazebosim.org | sh - name: Install SDL2 run: sudo apt-get install 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