diff --git a/.github/workflows/humble-binary-build.yml b/.github/workflows/humble-binary-build.yml
new file mode 100644
index 000000000..6270c36be
--- /dev/null
+++ b/.github/workflows/humble-binary-build.yml
@@ -0,0 +1,21 @@
+name: Humble Binary Build
+# description: 'Build & test all dependencies from released (binary) packages.'
+
+on:
+ pull_request:
+ branches:
+ - humble
+ push:
+ branches:
+ - humble
+ schedule:
+ # Run every morning to detect flakiness and broken dependencies
+ - cron: '03 1 * * *'
+
+jobs:
+ binary:
+ uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
+ with:
+ ros_distro: humble
+ upstream_workspace: ros2_control_demos-not-released.humble.repos
+ ref_for_scheduled_build: humble
diff --git a/.github/workflows/humble-semi-binary-build.yml b/.github/workflows/humble-semi-binary-build.yml
new file mode 100644
index 000000000..3def6c31a
--- /dev/null
+++ b/.github/workflows/humble-semi-binary-build.yml
@@ -0,0 +1,21 @@
+name: Humble Semi-Binary Build
+# description: 'Build & test that compiles the main dependencies from source.'
+
+on:
+ pull_request:
+ branches:
+ - humble
+ push:
+ branches:
+ - humble
+ schedule:
+ # Run every morning to detect flakiness and broken dependencies
+ - cron: '33 1 * * *'
+
+jobs:
+ semi_binary:
+ uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
+ with:
+ ros_distro: humble
+ upstream_workspace: ros2_control_demos.humble.repos
+ ref_for_scheduled_build: humble
diff --git a/README.md b/README.md
index 94ff920a6..9e8e817cb 100644
--- a/README.md
+++ b/README.md
@@ -82,6 +82,7 @@ Those two world-known imaginary robots are trivial simulations to demonstrate an
ROS 2 Distro | Branch | Build status | Documentation
:----------: | :----: | :----------: | :-----------:
**Rolling** | [`master`](https://github.com/ros-controls/ros2_control_demos/tree/rolling) | [![Rolling Binary Build](https://github.com/ros-controls/ros2_control_demos/actions/workflows/rolling-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control_demos/actions/workflows/rolling-binary-build.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_control_demos/actions/workflows/rolling-semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control_demos/actions/workflows/rolling-semi-binary-build.yml?branch=master)
| [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/ros2_control_demos/tree/humble) | [![Humble Binary Build](https://github.com/ros-controls/ros2_control_demos/actions/workflows/humble-binary-build.yml/badge.svg?branch=humble)](https://github.com/ros-controls/ros2_control_demos/actions/workflows/humble-binary-build.yml?branch=humble)
[![Humble Semi-Binary Build](https://github.com/ros-controls/ros2_control_demos/actions/workflows/humble-semi-binary-build.yml/badge.svg?branch=humble)](https://github.com/ros-controls/ros2_control_demos/actions/workflows/humble-semi-binary-build.yml?branch=humble)
| [Documentation](https://control.ros.org/humble/index.html)
[API Reference](https://control.ros.org/humble/doc/api/index.html)
**Galactic** | [`galactic`](https://github.com/ros-controls/ros2_control_demos/tree/galactic) | [![Galactic Binary Build](https://github.com/ros-controls/ros2_control_demos/actions/workflows/galactic-binary-build.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_control_demos/actions/workflows/galactic-binary-build.yml?branch=galactic)
[![Galactic Semi-Binary Build](https://github.com/ros-controls/ros2_control_demos/actions/workflows/galactic-semi-binary-build.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_control_demos/actions/workflows/galactic-semi-binary-build.yml?branch=galactic)
| [Documentation](https://control.ros.org/galactic/index.html)
[API Reference](https://control.ros.org/galactic/doc/api/index.html)
**Foxy** | [`foxy`](https://github.com/ros-controls/ros2_control_demos/tree/foxy) | [![Foxy Binary Build](https://github.com/ros-controls/ros2_control_demos/actions/workflows/foxy-binary-build.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_control_demos/actions/workflows/foxy-binary-build.yml?branch=foxy)
[![Foxy Semi-Binary Build](https://github.com/ros-controls/ros2_control_demos/actions/workflows/foxy-semi-binary-build.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_control_demos/actions/workflows/foxy-semi-binary-build.yml?branch=foxy)
| [Documentation](https://control.ros.org/foxy/index.html)
[API Reference](https://control.ros.org/foxy/doc/api/index.html)
diff --git a/ros2_control_demos-not-released.humble.repos b/ros2_control_demos-not-released.humble.repos
new file mode 100644
index 000000000..56f46b6f7
--- /dev/null
+++ b/ros2_control_demos-not-released.humble.repos
@@ -0,0 +1 @@
+repositories:
diff --git a/ros2_control_demos.humble.repos b/ros2_control_demos.humble.repos
new file mode 100644
index 000000000..e7fb6e544
--- /dev/null
+++ b/ros2_control_demos.humble.repos
@@ -0,0 +1,17 @@
+repositories:
+ control_msgs:
+ type: git
+ url: https://github.com/ros-controls/control_msgs.git
+ version: humble
+ realtime_tools:
+ type: git
+ url: https://github.com/ros-controls/realtime_tools.git
+ version: master
+ ros2_control:
+ type: git
+ url: https://github.com/ros-controls/ros2_control.git
+ version: humble
+ ros2_controllers:
+ type: git
+ url: https://github.com/ros-controls/ros2_controllers.git
+ version: humble