feat(web): rover ui (#17) #106
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| schedule: | |
| - cron: 0 0 * * 1 | |
| workflow_dispatch: | |
| pull_request: | |
| types: [opened, reopened, synchronize] | |
| push: | |
| branches: [main] | |
| concurrency: | |
| group: "ci" | |
| cancel-in-progress: true | |
| jobs: | |
| web: | |
| name: Web | |
| uses: ./.github/workflows/web.yml | |
| license-check: | |
| name: License Check | |
| uses: ./.github/workflows/license_check.yml | |
| build: | |
| name: Build (${{ matrix.name }}) | |
| runs-on: ${{ matrix.runs_on }} | |
| permissions: | |
| contents: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: macOS | |
| runs_on: macos-latest | |
| - name: Linux x64 | |
| runs_on: ubuntu-24.04 | |
| - name: Linux ARM64 | |
| runs_on: ubuntu-24.04-arm | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| # pan_tilt_demo README + project deps (librealsense is built from source; no apt librealsense2 packages). | |
| - name: Install Linux dependencies | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update && sudo apt-get upgrade -y | |
| sudo apt-get install -y --no-install-recommends \ | |
| libspdlog-dev \ | |
| libfmt-dev \ | |
| pkg-config \ | |
| zlib1g-dev \ | |
| libssl-dev \ | |
| libusb-1.0-0-dev \ | |
| libudev-dev \ | |
| libgtk-3-dev \ | |
| libxss-dev \ | |
| git \ | |
| wget \ | |
| cmake \ | |
| build-essential \ | |
| libglfw3-dev \ | |
| libgl1-mesa-dev \ | |
| libglu1-mesa-dev \ | |
| at \ | |
| && sudo apt-get autoremove -y && sudo apt-get clean -y | |
| # Matches pan_tilt_demo/README.md (Installing librealsense2). Installs to /usr/local for find_package(realsense2). | |
| # - Udev: README runs ./scripts/setup_udev_rules.sh; that script prompts when cameras/video nodes exist. In CI we | |
| # apply the same default USB rules (config/99-realsense-libusb.rules) + udevadm reload (see that script). | |
| # - patch-realsense-ubuntu-lts-hwe.sh: not run in CI (full kernel-module rebuild; not needed to compile the | |
| # librealsense2 userspace SDK on stock Ubuntu 24.04; run locally per README when using hardware). | |
| - name: Build and install librealsense2 from source (Linux) | |
| if: runner.os == 'Linux' | |
| run: | | |
| set -euxo pipefail | |
| src="${{ runner.temp }}/librealsense" | |
| git clone https://github.com/realsenseai/librealsense.git "$src" | |
| cd "$src" | |
| sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ | |
| sudo udevadm control --reload-rules && sudo udevadm trigger | |
| mkdir -p build && cd build | |
| cmake ../ -DCMAKE_BUILD_TYPE=Release | |
| make -j"$(( $(nproc) - 1 ))" | |
| sudo make install | |
| - name: Install macOS dependencies | |
| if: runner.os == 'macOS' | |
| run: brew install spdlog readline zlib fmt | |
| - name: Build pan_tilt_demo | |
| working-directory: pan_tilt_demo | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| run: | | |
| ./build.sh |