-
Notifications
You must be signed in to change notification settings - Fork 69
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Adding dockerfiles for building tests Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Initial docker compose nightly workflow Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Using new docker compose command Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Fix zenoh bridge image branch Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Use curl for repo tar Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Use docker compose command for down too Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Setup integration testing with flag, test with workflow Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Install docker-compose in ros container Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Ommit setup-ros step and fix linting Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Revert setup ros step, use cmake -args Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Use 1.0.1 API Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Using client and router method Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Remove command in docker compose Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Working locally, commented out zenohd Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Spinning up minimal-zenoh too Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Moving docker files, trying with client mode Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Use official zenoh docker image and compose example, rename client zenoh config, update README, test build docker images Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Re-usable workflow actions, split integration testing Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Missing docker-compose installation Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Fix broken action, rename test job Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Fix shell selection, use composite Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Set nightly schedule, fix steps in unit-tests Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Remove minimal zenoh router dockerfile, add checkout to unit-tests Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Isolating tf listner components for testing Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Use correct robot name, lint Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Clean up imports and fix namespacing Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Refactor to TfHandler, added testing Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Simplifying API Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Moved integration testing to free fleet adapter, added abstract RobotAdapter Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Abstract out robot adapter, slight refactor Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Robot existense test, with a planned failure to verify that it is running Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * setup rclpy node for testing too Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Add coverage and fix lint Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Use unit test test cases Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Move tests Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Fix launch files Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Rename functions Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Not to check execution, comment out stop command test Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Use helper function for stop Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Using all statuses Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Badges Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Switch to easy-full-control branch before merging Signed-off-by: Aaron Chong <aaronchongth@gmail.com> * Update readme Signed-off-by: Aaron Chong <aaronchongth@gmail.com> --------- Signed-off-by: Aaron Chong <aaronchongth@gmail.com>
- Loading branch information
1 parent
d57714b
commit bdc9f87
Showing
29 changed files
with
1,053 additions
and
272 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
name: build-and-test | ||
|
||
inputs: | ||
ros-distribution: | ||
description: string, ROS distribution to setup | ||
required: true | ||
zenoh-version: | ||
description: string, version of eclipse-zenoh to install from pip | ||
required: true | ||
integration-testing: | ||
description: string, supports ON or OFF only | ||
required: false | ||
default: "OFF" | ||
|
||
runs: | ||
using: composite | ||
steps: | ||
- name: install dependencies | ||
run: | | ||
sudo apt update && sudo apt install python3-pip -y | ||
pip3 install eclipse-zenoh==${{ inputs.zenoh-version }} pycdr2 --break-system-packages | ||
shell: bash | ||
|
||
- uses: ros-tooling/setup-ros@v0.7 | ||
with: | ||
required-ros-distributions: ${{ inputs.ros-distribution }} | ||
|
||
- name: build and test | ||
uses: ros-tooling/action-ros-ci@v0.3 | ||
with: | ||
package-name: free_fleet free_fleet_adapter free_fleet_examples | ||
target-ros2-distro: ${{ inputs.ros-distribution }} | ||
colcon-defaults: | | ||
{ | ||
"build": { | ||
"cmake-args": [ | ||
"-DINTEGRATION_TESTING=${{ inputs.integration-testing }}" | ||
], | ||
"mixin": ["coverage-pytest"] | ||
}, | ||
"test": { | ||
"mixin": ["coverage-pytest"] | ||
} | ||
} | ||
colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
version: "3" | ||
|
||
services: | ||
minimal-nav2-bringup: | ||
image: ghcr.io/open-rmf/free_fleet/minimal-nav2-bringup:jazzy-latest | ||
stop_signal: SIGINT | ||
network_mode: host | ||
privileged: true | ||
stdin_open: true | ||
tty: true | ||
environment: | ||
- ROS_DOMAIN_ID=42 | ||
|
||
minimal-zenoh-bridge: | ||
image: ghcr.io/open-rmf/free_fleet/minimal-zenoh-bridge:jazzy-latest | ||
network_mode: host | ||
stdin_open: true | ||
tty: true | ||
environment: | ||
- ROS_DOMAIN_ID=42 | ||
|
||
minimal-zenoh-router: | ||
image: eclipse/zenoh | ||
restart: unless-stopped | ||
network_mode: host | ||
stdin_open: true | ||
tty: true | ||
environment: | ||
- RUST_LOG=debug |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
ARG ROS_DISTRO=jazzy | ||
FROM docker.io/ros:$ROS_DISTRO-ros-base | ||
|
||
RUN apt update && apt install -y curl ros-$ROS_DISTRO-nav2-bringup ros-$ROS_DISTRO-rmw-cyclonedds-cpp | ||
|
||
RUN mkdir -p /tb3 && cd /tb3 \ | ||
&& curl -sL https://github.com/ROBOTIS-GIT/turtlebot3_simulations/archive/refs/heads/master.tar.gz -o turtlebot3_simulations.tar.gz \ | ||
&& mkdir -p /tb3/turtlebot3_simulations && tar zxf turtlebot3_simulations.tar.gz -C /tb3/turtlebot3_simulations --strip-components=1 && rm turtlebot3_simulations.tar.gz | ||
|
||
ENV RMW_IMPLEMENTATION rmw_cyclonedds_cpp | ||
ENV GAZEBO_MODEL_PATH "$GAZEBO_MODEL_PATH:/tb3/turtlebot3_simulations/turtlebot3_gazebo/models" | ||
|
||
RUN rm -rf \ | ||
/var/lib/apt/lists \ | ||
/dist | ||
|
||
# Modify existing params file to add initial pose | ||
RUN mkdir -p /params && cd /params \ | ||
&& cp /opt/ros/$ROS_DISTRO/share/nav2_bringup/params/nav2_params.yaml . \ | ||
&& sed -z 's|amcl:\n ros__parameters:\n|amcl:\n ros__parameters:\n set_initial_pose: true\n initial_pose: {x: -2.0, y: -0.5, z: 0.0, yaw: 0.0}\n|' nav2_params.yaml > nav2_params_edited.yaml | ||
|
||
ENTRYPOINT ["bash", "-c", ". /opt/ros/$ROS_DISTRO/setup.bash && ros2 launch nav2_bringup tb3_simulation_launch.py params_file:=/params/nav2_params_edited.yaml use_rviz:=False"] |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
ARG ROS_DISTRO=jazzy | ||
FROM docker.io/ros:$ROS_DISTRO-ros-base | ||
ARG ZENOH_VERSION=1.0.1 | ||
ARG FREE_FLEET_BRANCH=main | ||
|
||
RUN apt update && apt install -y wget unzip ros-jazzy-rmw-cyclonedds-cpp | ||
|
||
RUN mkdir -p /zenoh-bridge && cd /zenoh-bridge \ | ||
&& wget -O zenoh-plugin-ros2dds.zip https://github.com/eclipse-zenoh/zenoh-plugin-ros2dds/releases/download/$ZENOH_VERSION/zenoh-plugin-ros2dds-$ZENOH_VERSION-x86_64-unknown-linux-gnu-standalone.zip \ | ||
&& unzip zenoh-plugin-ros2dds.zip \ | ||
&& rm zenoh-plugin-ros2dds.zip | ||
|
||
RUN cd /zenoh-bridge \ | ||
&& wget -O turtlebot3_1_client_zenoh_config.json5 https://raw.githubusercontent.com/open-rmf/free_fleet/refs/heads/$FREE_FLEET_BRANCH/free_fleet_examples/zenoh_configs/turtlebot3_1_client_zenoh_config.json5 | ||
|
||
ENV RMW_IMPLEMENTATION rmw_cyclonedds_cpp | ||
|
||
RUN rm -rf \ | ||
/var/lib/apt/lists \ | ||
/dist | ||
|
||
ENTRYPOINT ["bash", "-c", ". /opt/ros/$ROS_DISTRO/setup.bash && /zenoh-bridge/zenoh-bridge-ros2dds -c /zenoh-bridge/turtlebot3_1_client_zenoh_config.json5"] |
This file was deleted.
Oops, something went wrong.
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
name: integration-tests | ||
|
||
on: push | ||
|
||
jobs: | ||
integration-tests: | ||
timeout-minutes: 10 | ||
runs-on: ubuntu-latest | ||
container: | ||
image: osrf/ros:${{ matrix.ros_distribution }}-desktop-noble | ||
strategy: | ||
matrix: | ||
ros_distribution: | ||
- jazzy | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v1 | ||
|
||
- name: Install docker-compose | ||
run: | | ||
sudo apt update && sudo apt install docker-compose -y | ||
- name: Start test fixture containers | ||
run: docker-compose -f ".github/docker/integration-tests/docker-compose.yaml" up -d --build | ||
|
||
- name: build-and-test | ||
uses: ./.github/actions/build-and-test | ||
with: | ||
ros-distribution: ${{ matrix.ros_distribution }} | ||
zenoh-version: 1.0.1 | ||
integration-testing: ON | ||
|
||
- name: Stop test fixture containers | ||
if: always() | ||
run: docker-compose -f ".github/docker/integration-tests/docker-compose.yaml" down | ||
|
||
- name: Upload coverage to Codecov | ||
uses: codecov/codecov-action@v4 | ||
with: | ||
files: ros_ws/coveragepy/.coverage | ||
flags: tests | ||
fail_ci_if_error: true | ||
env: | ||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
name: nightly | ||
|
||
on: | ||
schedule: | ||
# 2am SGT | ||
- cron: '0 18 * * *' | ||
|
||
jobs: | ||
build-minimal-docker-images: | ||
name: Push minimal docker images to GitHub Packages | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
ros_distribution: [jazzy] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v3 | ||
|
||
- name: Login to docker | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Build and push minimal-nav2-bringup | ||
uses: docker/build-push-action@v5 | ||
with: | ||
push: true | ||
build-args: | | ||
ROS_DISTRO=${{ matrix.ros_distribution }} | ||
tags: ghcr.io/${{ github.repository }}/minimal-nav2-bringup:${{ matrix.ros_distribution }}-latest | ||
context: .github/docker/minimal-nav2-bringup | ||
|
||
- name: Build and push minimal-zenoh-bridge | ||
uses: docker/build-push-action@v5 | ||
with: | ||
push: true | ||
build-args: | | ||
ROS_DISTRO=${{ matrix.ros_distribution }} | ||
ZENOH_VERSION=1.0.1 | ||
FREE_FLEET_BRANCH=easy-full-control | ||
tags: ghcr.io/${{ github.repository }}/minimal-zenoh-bridge:${{ matrix.ros_distribution }}-latest | ||
context: .github/docker/minimal-zenoh-bridge | ||
|
||
integration-tests: | ||
needs: build-minimal-docker-images | ||
timeout-minutes: 10 | ||
runs-on: ubuntu-latest | ||
container: | ||
image: osrf/ros:${{ matrix.ros_distribution }}-desktop-noble | ||
strategy: | ||
matrix: | ||
ros_distribution: | ||
- jazzy | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v1 | ||
|
||
- name: Install docker-compose | ||
run: | | ||
sudo apt update && sudo apt install docker-compose -y | ||
- name: Start test fixture containers | ||
run: docker-compose -f ".github/docker/integration-tests/docker-compose.yaml" up -d --build | ||
|
||
- name: build-and-test | ||
uses: ./.github/actions/build-and-test | ||
with: | ||
ros-distribution: ${{ matrix.ros_distribution }} | ||
zenoh-version: 1.0.1 | ||
integration-testing: ON | ||
|
||
- name: Stop test fixture containers | ||
if: always() | ||
run: docker-compose -f ".github/docker/integration-tests/docker-compose.yaml" down |
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
name: unit-tests | ||
|
||
on: push | ||
|
||
jobs: | ||
unit-tests: | ||
runs-on: ubuntu-latest | ||
container: | ||
image: osrf/ros:${{ matrix.ros_distribution }}-desktop-noble | ||
strategy: | ||
matrix: | ||
ros_distribution: | ||
- jazzy | ||
- rolling | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v1 | ||
|
||
- name: build-and-test | ||
uses: ./.github/actions/build-and-test | ||
with: | ||
ros-distribution: ${{ matrix.ros_distribution }} | ||
zenoh-version: 1.0.1 | ||
integration-testing: OFF |
Oops, something went wrong.