Skip to content

[pre-commit.ci] pre-commit autoupdate #33

[pre-commit.ci] pre-commit autoupdate

[pre-commit.ci] pre-commit autoupdate #33

Workflow file for this run

name: ci
on:
push:
branches: [master]
pull_request:
workflow_dispatch: {}
concurrency:
group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
ROS_DISTRO: kilted
jobs:
lint:
runs-on: ubuntu-24.04
container:
image: osrf/ros:kilted-desktop-full-noble
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- name: Install lint deps
shell: bash
run: |
set -eux
apt-get update
apt-get install -y --no-install-recommends python3-ruff
- name: Ruff
shell: bash
run: |
set -eux
ruff check ros_ws/src/analysis ros_ws/src/bringup ros_ws/src/robot_diag_control
ros-core:
runs-on: ubuntu-24.04
container:
image: osrf/ros:kilted-desktop-full-noble
timeout-minutes: 50
steps:
- uses: actions/checkout@v4
- name: Install ROS workspace deps
shell: bash
run: |
set -eux
bash scripts/ci/install_ros_workspace_deps.sh \
ros_ws/src/omniseer_gz_assets \
ros_ws/src/omniseer_msgs \
ros_ws/src/yolo_ros/yolo_msgs \
ros_ws/src/omniseer_description \
ros_ws/src/analysis \
ros_ws/src/bringup \
ros_ws/src/robot_io_adapters \
ros_ws/src/robot_diag_control \
ros_ws/src/robot_diag_control_cpp
- name: Build ROS packages
shell: bash
run: |
set -eux
source /opt/ros/${ROS_DISTRO}/setup.bash
cd ros_ws
colcon build --merge-install \
--packages-select \
omniseer_gz_assets \
omniseer_msgs \
yolo_msgs \
omniseer_description \
analysis \
bringup \
robot_io_adapters \
robot_diag_control \
robot_diag_control_cpp
- name: Build vision bridge when SDKs are present
shell: bash
run: |
set -eux
if command -v pkg-config >/dev/null \
&& pkg-config --exists librga \
&& [ -f /usr/include/rknn_api.h ] \
&& find /usr/lib /usr/local/lib -name 'librknnrt.so' -print -quit | grep -q .; then
source /opt/ros/${ROS_DISTRO}/setup.bash
cd ros_ws
source install/setup.bash
colcon build --merge-install --packages-select omniseer_vision_bridge
else
echo "Skipping omniseer_vision_bridge: librga/RKNN SDK not available in CI image"
fi
- name: Test ROS packages
shell: bash
run: |
set -eux
source /opt/ros/${ROS_DISTRO}/setup.bash
cd ros_ws
source install/setup.bash
colcon test --merge-install \
--packages-select \
omniseer_description \
analysis \
bringup \
robot_io_adapters \
robot_diag_control \
robot_diag_control_cpp
colcon test-result --all --verbose
- name: Upload ROS logs
if: always()
uses: actions/upload-artifact@v4
with:
name: ros-core-logs
if-no-files-found: ignore
path: |
ros_ws/log
ros_ws/build/*/test_results
ros_ws/build/*/Testing/Temporary
bringup-smoke:
runs-on: ubuntu-24.04
container:
image: osrf/ros:kilted-desktop-full-noble
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
- name: Install ROS workspace deps
shell: bash
run: |
set -eux
bash scripts/ci/install_ros_workspace_deps.sh \
ros_ws/src/omniseer_gz_assets \
ros_ws/src/omniseer_msgs \
ros_ws/src/omniseer_description \
ros_ws/src/bringup \
ros_ws/src/robot_io_adapters
- name: Build bringup smoke package set
shell: bash
run: |
set -eux
source /opt/ros/${ROS_DISTRO}/setup.bash
cd ros_ws
colcon build --merge-install \
--packages-select \
omniseer_gz_assets \
omniseer_msgs \
omniseer_description \
bringup \
robot_io_adapters
- name: Run headless bringup smoke test
shell: bash
env:
OMNISEER_RUN_SIM_SMOKE: "1"
OMNISEER_SMOKE_LOG_PATH: ${{ github.workspace }}/ros_ws/log/bringup_smoke/sim.launch.log
run: |
set -eux
mkdir -p "$(dirname "${OMNISEER_SMOKE_LOG_PATH}")"
source /opt/ros/${ROS_DISTRO}/setup.bash
cd ros_ws
source install/setup.bash
python3 -m pytest -vv -s src/bringup/test/test_sim_launch_smoke.py
- name: Upload bringup smoke logs
if: always()
uses: actions/upload-artifact@v4
with:
name: bringup-smoke-logs
if-no-files-found: ignore
path: |
ros_ws/log
ros_ws/build/*/test_results
ros_ws/build/*/Testing/Temporary
vision-host:
runs-on: ubuntu-24.04
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- name: Build host vision tests
shell: bash
run: |
set -eux
cmake -S vision -B vision/build-ci -DVISION_BUILD_HARNESS=OFF
cmake --build vision/build-ci \
--target image_buffer_pool_test jsonl_telemetry_test rolling_telemetry_test
- name: Run host vision tests
shell: bash
run: |
set -eux
ctest --test-dir vision/build-ci \
-R 'image_buffer_pool_test|jsonl_telemetry_test|rolling_telemetry_test' \
--output-on-failure
- name: Upload vision logs
if: always()
uses: actions/upload-artifact@v4
with:
name: vision-host-logs
if-no-files-found: ignore
path: |
vision/build-ci/Testing/Temporary
vision/build-ci/CMakeFiles/CMakeOutput.log
vision/build-ci/CMakeFiles/CMakeError.log
firmware-build:
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install PlatformIO
shell: bash
run: |
set -eux
python3 -m pip install --upgrade pip
python3 -m pip install platformio
- name: Build firmware
shell: bash
run: |
set -eux
platformio run -d firmware -e teensy41
- name: Upload firmware build outputs
if: always()
uses: actions/upload-artifact@v4
with:
name: firmware-build-artifacts
if-no-files-found: ignore
path: |
firmware/.pio/build/teensy41
docs-build:
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Build docs
shell: bash
run: |
set -eux
python3 -m pip install --upgrade pip
python3 -m pip install \
mkdocs-material \
mkdocs-git-revision-date-localized-plugin
mkdocs build --strict