diff --git a/.github/workflows/README.md b/.github/workflows/README.md
index 36caf0256f..5e8c8ef0fd 100644
--- a/.github/workflows/README.md
+++ b/.github/workflows/README.md
@@ -2,4 +2,5 @@
ROS2 Distro | Branch | Build status | Documentation | Released packages
:---------: | :----: | :----------: | :-----------: | :---------------:
**Rolling** | [`master`](https://github.com/ros-controls/ros2_control/tree/master) | [![Rolling Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-main.yml?branch=master)
[![Rolling Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-testing.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-main.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-testing.yml?branch=master)
[![Rolling Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-source-build.yml?branch=master) | [Documentation](https://control.ros.org/master/index.html)
[API Reference](https://control.ros.org/master/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#rolling)
+**Iron** | [`master`](https://github.com/ros-controls/ros2_control/tree/master) | [![Iron Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-binary-build-main.yml?branch=master)
[![Iron Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-binary-build-testing.yml?branch=master)
[![Iron Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-semi-binary-build-main.yml?branch=master)
[![Iron Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-semi-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-semi-binary-build-testing.yml?branch=master)
[![Iron Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-source-build.yml?branch=master) | [Documentation](https://control.ros.org/master/index.html)
[API Reference](https://control.ros.org/master/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#iron)
**Humble** | [`humble`](https://github.com/ros-controls/ros2_control/tree/humble) | [![Humble Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build-main.yml?branch=master)
[![Humble Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build-testing.yml?branch=master)
[![Humble Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build-main.yml?branch=master)
[![Humble Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build-testing.yml?branch=master)
[![Humble Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-source-build.yml?branch=master) | [Documentation](https://control.ros.org/humble/index.html)
[API Reference](https://control.ros.org/humble/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#humble)
diff --git a/.github/workflows/iron-abi-compatibility.yml b/.github/workflows/iron-abi-compatibility.yml
new file mode 100644
index 0000000000..f92166b0c1
--- /dev/null
+++ b/.github/workflows/iron-abi-compatibility.yml
@@ -0,0 +1,20 @@
+name: Iron - ABI Compatibility Check
+on:
+ workflow_dispatch:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ abi_check:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: ros-industrial/industrial_ci@master
+ env:
+ ROS_DISTRO: iron
+ ROS_REPO: main
+ ABICHECK_URL: github:${{ github.repository }}#${{ github.base_ref }}
+ NOT_TEST_BUILD: true
diff --git a/.github/workflows/iron-binary-build-main.yml b/.github/workflows/iron-binary-build-main.yml
new file mode 100644
index 0000000000..be225cc0e1
--- /dev/null
+++ b/.github/workflows/iron-binary-build-main.yml
@@ -0,0 +1,26 @@
+name: Iron Binary Build - main
+# author: Denis Štogl
+# description: 'Build & test all dependencies from released (binary) packages.'
+
+on:
+ workflow_dispatch:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+ push:
+ branches:
+ - master
+ 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: iron
+ ros_repo: main
+ upstream_workspace: ros2_control-not-released.iron.repos
+ ref_for_scheduled_build: master
diff --git a/.github/workflows/iron-binary-build-testing.yml b/.github/workflows/iron-binary-build-testing.yml
new file mode 100644
index 0000000000..c44786c7e2
--- /dev/null
+++ b/.github/workflows/iron-binary-build-testing.yml
@@ -0,0 +1,26 @@
+name: Iron Binary Build - testing
+# author: Denis Štogl
+# description: 'Build & test all dependencies from released (binary) packages.'
+
+on:
+ workflow_dispatch:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+ push:
+ branches:
+ - master
+ 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: iron
+ ros_repo: testing
+ upstream_workspace: ros2_control-not-released.iron.repos
+ ref_for_scheduled_build: master
diff --git a/.github/workflows/iron-rhel-binary-build.yml b/.github/workflows/iron-rhel-binary-build.yml
new file mode 100644
index 0000000000..afcdf332d4
--- /dev/null
+++ b/.github/workflows/iron-rhel-binary-build.yml
@@ -0,0 +1,32 @@
+name: Iron RHEL Binary Build
+on:
+ workflow_dispatch:
+ branches:
+ - iron
+# pull_request:
+# branches:
+# - iron
+# push:
+# branches:
+# - iron
+# schedule:
+# # Run every day to detect flakiness and broken dependencies
+# - cron: '03 1 * * *'
+
+jobs:
+ iron_rhel_binary:
+ name: Iron RHEL binary build
+ runs-on: ubuntu-latest
+ env:
+ ROS_DISTRO: iron
+ container: ghcr.io/ros-controls/ros:iron-rhel
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ path: src/ros2_control
+ - run: |
+ rosdep update
+ rosdep install -iy --from-path src/ros2_control
+ source /opt/ros/${{ env.ROS_DISTRO }}/setup.bash
+ colcon build
+ colcon test
diff --git a/.github/workflows/iron-semi-binary-build-main.yml b/.github/workflows/iron-semi-binary-build-main.yml
new file mode 100644
index 0000000000..1d72d06149
--- /dev/null
+++ b/.github/workflows/iron-semi-binary-build-main.yml
@@ -0,0 +1,25 @@
+name: Iron Semi-Binary Build - main
+# description: 'Build & test that compiles the main dependencies from source.'
+
+on:
+ workflow_dispatch:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+ push:
+ branches:
+ - master
+ 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: iron
+ ros_repo: main
+ upstream_workspace: ros2_control.iron.repos
+ ref_for_scheduled_build: master
diff --git a/.github/workflows/iron-semi-binary-build-testing.yml b/.github/workflows/iron-semi-binary-build-testing.yml
new file mode 100644
index 0000000000..48707cd914
--- /dev/null
+++ b/.github/workflows/iron-semi-binary-build-testing.yml
@@ -0,0 +1,25 @@
+name: Iron Semi-Binary Build - testing
+# description: 'Build & test that compiles the main dependencies from source.'
+
+on:
+ workflow_dispatch:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+ push:
+ branches:
+ - master
+ 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: iron
+ ros_repo: testing
+ upstream_workspace: ros2_control.iron.repos
+ ref_for_scheduled_build: master
diff --git a/.github/workflows/iron-source-build.yml b/.github/workflows/iron-source-build.yml
new file mode 100644
index 0000000000..31eccd1bef
--- /dev/null
+++ b/.github/workflows/iron-source-build.yml
@@ -0,0 +1,19 @@
+name: Iron Source Build
+on:
+ workflow_dispatch:
+ branches:
+ - master
+ push:
+ branches:
+ - master
+ schedule:
+ # Run every day to detect flakiness and broken dependencies
+ - cron: '03 3 * * *'
+
+jobs:
+ source:
+ uses: ./.github/workflows/reusable-ros-tooling-source-build.yml
+ with:
+ ros_distro: iron
+ ref: master
+ ros2_repo_branch: iron
diff --git a/.github/workflows/prerelease-check.yml b/.github/workflows/prerelease-check.yml
index 5e7326e510..eefb15ae87 100644
--- a/.github/workflows/prerelease-check.yml
+++ b/.github/workflows/prerelease-check.yml
@@ -10,6 +10,7 @@ on:
type: choice
options:
- humble
+ - iron
- rolling
branch:
description: 'Chose branch for distro'
@@ -18,6 +19,7 @@ on:
type: choice
options:
- humble
+ - iron
- master
jobs:
diff --git a/README.md b/README.md
index e5ba217d35..7981031a13 100644
--- a/README.md
+++ b/README.md
@@ -11,6 +11,7 @@ For more, please check the [documentation](https://ros-controls.github.io/contro
ROS2 Distro | Branch | Build status | Documentation | Released packages
:---------: | :----: | :----------: | :-----------: | :---------------:
**Rolling** | [`master`](https://github.com/ros-controls/ros2_control/tree/master) | [![Rolling Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-main.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-main.yml?branch=master) | [Documentation](https://control.ros.org/master/index.html)
[API Reference](https://control.ros.org/master/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#rolling)
+**Iron** | [`master`](https://github.com/ros-controls/ros2_control/tree/master) | [![Iron Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-binary-build-main.yml?branch=master)
[![Iron Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/iron-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/iron-semi-binary-build-main.yml?branch=master) | [Documentation](https://control.ros.org/master/index.html)
[API Reference](https://control.ros.org/master/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#iron)
**Humble** | [`humble`](https://github.com/ros-controls/ros2_control/tree/humble) | [![Humble Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build-main.yml?branch=master)
[![Humble Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build-main.yml?branch=master) | [Documentation](https://control.ros.org/humble/index.html)
[API Reference](https://control.ros.org/humble/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#humble)
[Detailed build status](.github/workflows/README.md)
diff --git a/ros2_control-not-released.iron.repos b/ros2_control-not-released.iron.repos
new file mode 100644
index 0000000000..56f46b6f79
--- /dev/null
+++ b/ros2_control-not-released.iron.repos
@@ -0,0 +1 @@
+repositories:
diff --git a/ros2_control.iron.repos b/ros2_control.iron.repos
new file mode 100644
index 0000000000..c93d8f4ef6
--- /dev/null
+++ b/ros2_control.iron.repos
@@ -0,0 +1,9 @@
+repositories:
+ ros-controls/realtime_tools:
+ type: git
+ url: https://github.com/ros-controls/realtime_tools.git
+ version: master
+ ros-controls/control_msgs:
+ type: git
+ url: https://github.com/ros-controls/control_msgs.git
+ version: master