diff --git a/.github/workflows/iron-binary-main.yml b/.github/workflows/iron-binary-main.yml
new file mode 100644
index 000000000..43c8df5ec
--- /dev/null
+++ b/.github/workflows/iron-binary-main.yml
@@ -0,0 +1,24 @@
+name: Iron Binary Build Main
+on:
+ workflow_dispatch:
+ branches:
+ - iron
+ pull_request:
+ branches:
+ - iron
+ - main # as long as rolling and iron should be compatible
+ push:
+ branches:
+ - iron
+ schedule:
+ # Run every morning to detect flakiness and broken dependencies
+ - cron: '13 5 * * *'
+
+jobs:
+ binary:
+ uses: ./.github/workflows/reusable_ici.yml
+ with:
+ ros_distro: iron
+ ros_repo: main
+ upstream_workspace: Universal_Robots_ROS2_Driver-not-released.iron.repos
+ ref_for_scheduled_build: iron
diff --git a/.github/workflows/iron-binary-testing.yml b/.github/workflows/iron-binary-testing.yml
new file mode 100644
index 000000000..a59f1daa3
--- /dev/null
+++ b/.github/workflows/iron-binary-testing.yml
@@ -0,0 +1,24 @@
+name: Iron Binary Build Testing
+on:
+ workflow_dispatch:
+ branches:
+ - iron
+ pull_request:
+ branches:
+ - iron
+ - main # as long as rolling and iron should be compatible
+ push:
+ branches:
+ - iron
+ schedule:
+ # Run every morning to detect flakiness and broken dependencies
+ - cron: '13 5 * * *'
+
+jobs:
+ binary:
+ uses: ./.github/workflows/reusable_ici.yml
+ with:
+ ros_distro: iron
+ ros_repo: testing
+ upstream_workspace: Universal_Robots_ROS2_Driver-not-released.iron.repos
+ ref_for_scheduled_build: iron
diff --git a/.github/workflows/iron-semi-binary-main.yml b/.github/workflows/iron-semi-binary-main.yml
new file mode 100644
index 000000000..60d0e3412
--- /dev/null
+++ b/.github/workflows/iron-semi-binary-main.yml
@@ -0,0 +1,24 @@
+name: Iron Semi Binary Build Main
+on:
+ workflow_dispatch:
+ branches:
+ - iron
+ pull_request:
+ branches:
+ - iron
+ - main # as long as rolling and iron should be compatible
+ push:
+ branches:
+ - iron
+ schedule:
+ # Run every morning to detect flakiness and broken dependencies
+ - cron: '13 5 * * *'
+
+jobs:
+ binary:
+ uses: ./.github/workflows/reusable_ici.yml
+ with:
+ ros_distro: iron
+ ros_repo: main
+ upstream_workspace: Universal_Robots_ROS2_Driver.iron.repos
+ ref_for_scheduled_build: iron
diff --git a/.github/workflows/iron-semi-binary-testing.yml b/.github/workflows/iron-semi-binary-testing.yml
new file mode 100644
index 000000000..d9a172075
--- /dev/null
+++ b/.github/workflows/iron-semi-binary-testing.yml
@@ -0,0 +1,24 @@
+name: Iron Semi Binary Build Testing
+on:
+ workflow_dispatch:
+ branches:
+ - iron
+ pull_request:
+ branches:
+ - iron
+ - main # as long as rolling and iron should be compatible
+ push:
+ branches:
+ - iron
+ schedule:
+ # Run every morning to detect flakiness and broken dependencies
+ - cron: '13 5 * * *'
+
+jobs:
+ binary:
+ uses: ./.github/workflows/reusable_ici.yml
+ with:
+ ros_distro: iron
+ ros_repo: testing
+ upstream_workspace: Universal_Robots_ROS2_Driver.iron.repos
+ ref_for_scheduled_build: iron
diff --git a/README.md b/README.md
index 09466ec33..c27268c20 100644
--- a/README.md
+++ b/README.md
@@ -13,14 +13,15 @@ The driver is compatible across the entire line of UR robots -- from 3 kg payloa
Check also [presentations and videos](ur_robot_driver/doc/resources/README.md) about this driver.
-## Build Status
+## Release Status
ROS2 Distro |
- Foxy |
- Galactic |
+ Foxy (EOL) |
+ Galactic (EOL) |
Humble |
+ Iron |
Rolling |
@@ -28,87 +29,52 @@ Check also [presentations and videos](ur_robot_driver/doc/resources/README.md) a
foxy |
galactic |
humble |
+ iron |
main |
- Build Status |
+ Release status |
-
-
-
|
-
-
-
|
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
|
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ |
+
+
+
+
+
+
|
+The table above shows the build status for each package of this repo from the [ROS buildfarm](https://build.ros2.org/). For end-of-life (EOL) distributions the nightly binary builds from our CI are shown. EOL distributions will receive no more updates and may be lacking features.
-**NOTE**: There are two build stages checking current and future compatibility of the driver.
-
-1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that
- direct local build is possible and is the most relevant workflow for users.
-
- Uses repos file: `src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released..repos`
-
-1. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source.
- Shows that local build with dependencies is possible and if fails there we can expect that after the next package sync we will not be able to build.
-
- Uses repos file: `src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver.repos`
-
-Each of these stages also performs integration tests using ursim. In order to execute these tests locally, they have to be enabled:
- ```
- colcon build --packages-select ur_robot_driver --cmake-args -DUR_ROBOT_DRIVER_BUILD_INTEGRATION_TESTS=On
- ```
-
+A more [detailed build status](ci_status.md) shows the state of all CI workflows inside this repo.
+Please note that the detailed view is intended for developers, while the one here should give end
+users an overview of the current released state.
## Packages in the Repository:
@@ -188,11 +154,14 @@ building might fail occasionally.
source install/setup.bash
```
-6. When consecutive pulls leads to build errors, please make sure to update the upstream packages before
- filing an issue:
+6. When consecutive pulls lead to build errors it is possible that you'll have to build an upstream
+ package from source, as well. See the [detailed build status](ci_status.md). When the binary builds are red, but
+ the semi-binary builds are green, you need to build the upstream dependencies from source. The
+ easiest way to achieve this, is using the repos file:
+
```
cd $COLCON_WS
- vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released.${ROS_DISTRO}.repos
+ vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver.${ROS_DISTRO}.repos
rosdep update
rosdep install --ignore-src --from-paths src -y
```
diff --git a/Universal_Robots_ROS2_Driver-not-released.iron.repos b/Universal_Robots_ROS2_Driver-not-released.iron.repos
new file mode 100644
index 000000000..352ac4558
--- /dev/null
+++ b/Universal_Robots_ROS2_Driver-not-released.iron.repos
@@ -0,0 +1,10 @@
+# The not-released files are meant to use upstream packages in binary form whenever possible.
+# Packages get added here, if they are not released at all or when the repo's current version
+# requires a newer version than the one currently released to the target distributions.
+# Once Upstream packages are released and synced to the target distributions in the required
+# version, the entry in this file shall be removed again.
+repositories:
+ Universal_Robots_ROS2_Description:
+ type: git
+ url: https://github.com/UniversalRobots/Universal_Robots_ROS2_Description.git
+ version: ros2
diff --git a/Universal_Robots_ROS2_Driver.iron.repos b/Universal_Robots_ROS2_Driver.iron.repos
new file mode 100644
index 000000000..67f590f66
--- /dev/null
+++ b/Universal_Robots_ROS2_Driver.iron.repos
@@ -0,0 +1,29 @@
+repositories:
+ Universal_Robots_Client_Library:
+ type: git
+ url: https://github.com/UniversalRobots/Universal_Robots_Client_Library.git
+ version: master
+ Universal_Robots_ROS2_Description:
+ type: git
+ url: https://github.com/UniversalRobots/Universal_Robots_ROS2_Description.git
+ version: ros2
+ ur_msgs:
+ type: git
+ url: https://github.com/ros-industrial/ur_msgs.git
+ version: foxy-devel
+ ros2_control:
+ type: git
+ url: https://github.com/ros-controls/ros2_control.git
+ version: master
+ ros2_controllers:
+ type: git
+ url: https://github.com/ros-controls/ros2_controllers
+ version: master
+ kinematics_interface:
+ type: git
+ url: https://github.com/ros-controls/kinematics_interface.git
+ version: master
+ control_msgs:
+ type: git
+ url: https://github.com/ros-controls/control_msgs.git
+ version: humble
diff --git a/ci_status.md b/ci_status.md
new file mode 100644
index 000000000..376cad650
--- /dev/null
+++ b/ci_status.md
@@ -0,0 +1,119 @@
+## Build Status
+
+This page gives a detailed overview of the build status of this repository. Please note that due to
+upstream changes some pipelines might turn red temporarily which can be expected behavior. For each
+red pipeline there should be a corresponding issue labeled with [ci-failure](https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/issues?q=is%3Aissue+is%3Aopen+label%3Aci-failure).
+
+
+
+
+**NOTE**: There are two build stages checking current and future compatibility of the driver.
+
+1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that
+ direct local build is possible and integration tests work against the released state.
+
+ Uses repos file: `src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released..repos`
+
+1. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source.
+ Shows that local build with dependencies is possible and if this fails we can expect that after the next package sync we will not be able to build.
+
+ Uses repos file: `src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver.repos`
+
+Each of these stages also performs integration tests using ursim. In order to execute these tests locally, they have to be enabled:
+ ```
+ colcon build --packages-select ur_robot_driver --cmake-args -DUR_ROBOT_DRIVER_BUILD_INTEGRATION_TESTS=On
+ ```