diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 00000000..aafd67c2
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,27 @@
+# To get started with Dependabot version updates, you'll need to specify which
+# package ecosystems to update and where the package manifests are located.
+# Please see the documentation for all configuration options:
+# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
+
+version: 2
+updates:
+ - package-ecosystem: "github-actions"
+ # Workflow files stored in the
+ # default location of `.github/workflows`
+ directory: "/"
+ schedule:
+ interval: "weekly"
+ - package-ecosystem: "github-actions"
+ # Workflow files stored in the
+ # default location of `.github/workflows`
+ directory: "/"
+ schedule:
+ interval: "weekly"
+ target-branch: "humble"
+ - package-ecosystem: "github-actions"
+ # Workflow files stored in the
+ # default location of `.github/workflows`
+ directory: "/"
+ schedule:
+ interval: "weekly"
+ target-branch: "iron"
diff --git a/.github/workflows/ci-humble.yaml b/.github/workflows/ci-humble.yaml
new file mode 100644
index 00000000..54a3b990
--- /dev/null
+++ b/.github/workflows/ci-humble.yaml
@@ -0,0 +1,82 @@
+name: gazebo_ros2_control CI - Humble
+
+on:
+ pull_request:
+ branches:
+ - humble
+ push:
+ branches:
+ - humble
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ container:
+ image: osrf/ros:humble-desktop
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup colcon workspace
+ id: configure
+ run: |
+ cd ..
+ mkdir -p /home/ros2_ws/src
+ cp -r gazebo_ros2_control /home/ros2_ws/src/
+ apt-get update && apt-get upgrade -q -y
+ apt-get update && apt-get install -q -y --no-install-recommends \
+ dirmngr \
+ gnupg2 \
+ lsb-release \
+ python3-colcon-ros
+ cd /home/ros2_ws/src/
+ rosdep update
+ rosdep install --from-paths ./ -i -y --rosdistro humble \
+ --ignore-src
+ - name: Build project
+ id: build
+ run: |
+ cd /home/ros2_ws/
+ . /opt/ros/humble/local_setup.sh
+ colcon build --packages-up-to gazebo_ros2_control_demos
+ - name: Run tests
+ id: test
+ run: |
+ cd /home/ros2_ws/
+ . /opt/ros/humble/local_setup.sh
+ colcon test --event-handlers console_direct+ --packages-select gazebo_ros2_control gazebo_ros2_control_demos
+ colcon test-result
+ build_testing:
+ runs-on: ubuntu-latest
+ container:
+ image: osrf/ros:humble-desktop
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup colcon workspace
+ id: configure
+ run: |
+ cd ..
+ mkdir -p /home/ros2_ws/src
+ cp -r gazebo_ros2_control /home/ros2_ws/src/
+ sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2-testing/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'
+ apt-get update && apt-get upgrade -q -y
+ apt-get update && apt-get install -q -y --no-install-recommends \
+ dirmngr \
+ gnupg2 \
+ lsb-release \
+ python3-colcon-ros
+ cd /home/ros2_ws/src/
+ rosdep update
+ rosdep install --from-paths ./ -i -y --rosdistro humble \
+ --ignore-src
+ - name: Build project
+ id: build
+ run: |
+ cd /home/ros2_ws/
+ . /opt/ros/humble/local_setup.sh
+ colcon build --packages-up-to gazebo_ros2_control_demos
+ - name: Run tests
+ id: test
+ run: |
+ cd /home/ros2_ws/
+ . /opt/ros/humble/local_setup.sh
+ colcon test --event-handlers console_direct+ --packages-select gazebo_ros2_control gazebo_ros2_control_demos
+ colcon test-result
diff --git a/.github/workflows/ci-iron.yaml b/.github/workflows/ci-iron.yaml
new file mode 100644
index 00000000..12fb68cc
--- /dev/null
+++ b/.github/workflows/ci-iron.yaml
@@ -0,0 +1,82 @@
+name: gazebo_ros2_control CI - iron
+
+on:
+ pull_request:
+ branches:
+ - iron
+ push:
+ branches:
+ - iron
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ container:
+ image: osrf/ros:iron-desktop
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup colcon workspace
+ id: configure
+ run: |
+ cd ..
+ mkdir -p /home/ros2_ws/src
+ cp -r gazebo_ros2_control /home/ros2_ws/src/
+ apt-get update && apt-get upgrade -q -y
+ apt-get update && apt-get install -q -y --no-install-recommends \
+ dirmngr \
+ gnupg2 \
+ lsb-release \
+ python3-colcon-ros
+ cd /home/ros2_ws/src/
+ rosdep update
+ rosdep install --from-paths ./ -i -y --rosdistro iron \
+ --ignore-src
+ - name: Build project
+ id: build
+ run: |
+ cd /home/ros2_ws/
+ . /opt/ros/iron/local_setup.sh
+ colcon build --packages-up-to gazebo_ros2_control_demos
+ - name: Run tests
+ id: test
+ run: |
+ cd /home/ros2_ws/
+ . /opt/ros/iron/local_setup.sh
+ colcon test --event-handlers console_direct+ --packages-select gazebo_ros2_control gazebo_ros2_control_demos
+ colcon test-result
+ build_testing:
+ runs-on: ubuntu-latest
+ container:
+ image: osrf/ros:iron-desktop
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup colcon workspace
+ id: configure
+ run: |
+ cd ..
+ mkdir -p /home/ros2_ws/src
+ cp -r gazebo_ros2_control /home/ros2_ws/src/
+ sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2-testing/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'
+ apt-get update && apt-get upgrade -q -y
+ apt-get update && apt-get install -q -y --no-install-recommends \
+ dirmngr \
+ gnupg2 \
+ lsb-release \
+ python3-colcon-ros
+ cd /home/ros2_ws/src/
+ rosdep update
+ rosdep install --from-paths ./ -i -y --rosdistro iron \
+ --ignore-src
+ - name: Build project
+ id: build
+ run: |
+ cd /home/ros2_ws/
+ . /opt/ros/iron/local_setup.sh
+ colcon build --packages-up-to gazebo_ros2_control_demos
+ - name: Run tests
+ id: test
+ run: |
+ cd /home/ros2_ws/
+ . /opt/ros/iron/local_setup.sh
+ colcon test --event-handlers console_direct+ --packages-select gazebo_ros2_control gazebo_ros2_control_demos
+ colcon test-result
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci-rolling.yaml
similarity index 97%
rename from .github/workflows/ci.yaml
rename to .github/workflows/ci-rolling.yaml
index 0dc0802f..f29e35eb 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci-rolling.yaml
@@ -1,11 +1,12 @@
-name: Gazebo ros2 control CI
+name: gazebo_ros2_control - Rolling
on:
pull_request:
+ branches:
+ - master
push:
branches:
- master
- - humble
jobs:
build:
diff --git a/README.md b/README.md
index ca4ea7b4..de2e262b 100644
--- a/README.md
+++ b/README.md
@@ -11,6 +11,6 @@ See the [documentation file](doc/index.rst) or [control.ros.org](https://control
ROS 2 Distro | Branch | Build status | Documentation
:----------: | :----: | :----------: | :-----------:
-**Rolling** | [`master`](https://github.com/ros-controls/gazebo_ros2_control/tree/master) | [![Gazebo ros2 control CI](https://github.com/ros-controls/gazebo_ros2_control/actions/workflows/ci.yaml/badge.svg?branch=master)](https://github.com/ros-controls/gazebo_ros2_control/actions/workflows/ci.yaml) | [Documentation](https://control.ros.org/master/index.html)
[API Reference](https://control.ros.org/master/doc/api/index.html)
-**Iron** | [`master`](https://github.com/ros-controls/gazebo_ros2_control/tree/master) | [![Gazebo ros2 control CI](https://github.com/ros-controls/gazebo_ros2_control/actions/workflows/ci.yaml/badge.svg?branch=master)](https://github.com/ros-controls/gazebo_ros2_control/actions/workflows/ci.yaml) | [Documentation](https://control.ros.org/master/index.html)
[API Reference](https://control.ros.org/master/doc/api/index.html)
-**Humble** | [`humble`](https://github.com/ros-controls/gazebo_ros2_control/tree/humble) | [![Gazebo ros2 control CI](https://github.com/ros-controls/gazebo_ros2_control/actions/workflows/ci.yaml/badge.svg?branch=humble)](https://github.com/ros-controls/gazebo_ros2_control/actions/workflows/ci.yaml) | [Documentation](https://control.ros.org/humble/index.html)
[API Reference](https://control.ros.org/humble/doc/api/index.html)
+**Rolling** | [`master`](https://github.com/ros-controls/gazebo_ros2_control/tree/master) | [![Gazebo ros2 control CI](https://github.com/ros-controls/gazebo_ros2_control/actions/workflows/ci-rolling.yaml/badge.svg?branch=master)](https://github.com/ros-controls/gazebo_ros2_control/actions/workflows/ci-rolling.yaml) | [Documentation](https://control.ros.org/master/index.html)
[API Reference](https://control.ros.org/master/doc/api/index.html)
+**Iron** | [`iron`](https://github.com/ros-controls/gazebo_ros2_control/tree/iron) | [![Gazebo ros2 control CI](https://github.com/ros-controls/gazebo_ros2_control/actions/workflows/ci-iron.yaml/badge.svg?branch=iron)](https://github.com/ros-controls/gazebo_ros2_control/actions/workflows/ci-iron.yaml) | [Documentation](https://control.ros.org/iron/index.html)
[API Reference](https://control.ros.org/iron/doc/api/index.html)
+**Humble** | [`humble`](https://github.com/ros-controls/gazebo_ros2_control/tree/humble) | [![Gazebo ros2 control CI](https://github.com/ros-controls/gazebo_ros2_control/actions/workflows/ci-humble.yaml/badge.svg?branch=humble)](https://github.com/ros-controls/gazebo_ros2_control/actions/workflows/ci-humble.yaml) | [Documentation](https://control.ros.org/humble/index.html)
[API Reference](https://control.ros.org/humble/doc/api/index.html)