Skip to content

Commit ee6b50f

Browse files
Felix Exner (fexner)RobertWilbrandt
andauthored
Split build status into two views & add iron workflows (#709)
* Move ci_status to own markdown file * Added workflows for iron * Add instructions for upstream deps on failing builds. * Use uJ64_ instead of uJ64: as prefix The colon seems to break github rendering * Update README.md Co-authored-by: RobertWilbrandt <[email protected]> * improve wording Co-authored-by: RobertWilbrandt <[email protected]> --------- Co-authored-by: RobertWilbrandt <[email protected]>
1 parent 5226d00 commit ee6b50f

8 files changed

+287
-64
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Iron Binary Build Main
2+
on:
3+
workflow_dispatch:
4+
branches:
5+
- iron
6+
pull_request:
7+
branches:
8+
- iron
9+
- main # as long as rolling and iron should be compatible
10+
push:
11+
branches:
12+
- iron
13+
schedule:
14+
# Run every morning to detect flakiness and broken dependencies
15+
- cron: '13 5 * * *'
16+
17+
jobs:
18+
binary:
19+
uses: ./.github/workflows/reusable_ici.yml
20+
with:
21+
ros_distro: iron
22+
ros_repo: main
23+
upstream_workspace: Universal_Robots_ROS2_Driver-not-released.iron.repos
24+
ref_for_scheduled_build: iron
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Iron Binary Build Testing
2+
on:
3+
workflow_dispatch:
4+
branches:
5+
- iron
6+
pull_request:
7+
branches:
8+
- iron
9+
- main # as long as rolling and iron should be compatible
10+
push:
11+
branches:
12+
- iron
13+
schedule:
14+
# Run every morning to detect flakiness and broken dependencies
15+
- cron: '13 5 * * *'
16+
17+
jobs:
18+
binary:
19+
uses: ./.github/workflows/reusable_ici.yml
20+
with:
21+
ros_distro: iron
22+
ros_repo: testing
23+
upstream_workspace: Universal_Robots_ROS2_Driver-not-released.iron.repos
24+
ref_for_scheduled_build: iron
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Iron Semi Binary Build Main
2+
on:
3+
workflow_dispatch:
4+
branches:
5+
- iron
6+
pull_request:
7+
branches:
8+
- iron
9+
- main # as long as rolling and iron should be compatible
10+
push:
11+
branches:
12+
- iron
13+
schedule:
14+
# Run every morning to detect flakiness and broken dependencies
15+
- cron: '13 5 * * *'
16+
17+
jobs:
18+
binary:
19+
uses: ./.github/workflows/reusable_ici.yml
20+
with:
21+
ros_distro: iron
22+
ros_repo: main
23+
upstream_workspace: Universal_Robots_ROS2_Driver.iron.repos
24+
ref_for_scheduled_build: iron
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Iron Semi Binary Build Testing
2+
on:
3+
workflow_dispatch:
4+
branches:
5+
- iron
6+
pull_request:
7+
branches:
8+
- iron
9+
- main # as long as rolling and iron should be compatible
10+
push:
11+
branches:
12+
- iron
13+
schedule:
14+
# Run every morning to detect flakiness and broken dependencies
15+
- cron: '13 5 * * *'
16+
17+
jobs:
18+
binary:
19+
uses: ./.github/workflows/reusable_ici.yml
20+
with:
21+
ros_distro: iron
22+
ros_repo: testing
23+
upstream_workspace: Universal_Robots_ROS2_Driver.iron.repos
24+
ref_for_scheduled_build: iron

README.md

Lines changed: 33 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -13,102 +13,68 @@ The driver is compatible across the entire line of UR robots -- from 3 kg payloa
1313
Check also [presentations and videos](ur_robot_driver/doc/resources/README.md) about this driver.
1414

1515

16-
## Build Status
16+
## Release Status
1717

1818
<table width="100%">
1919
<tr>
2020
<th>ROS2 Distro</th>
21-
<th>Foxy</th>
22-
<th>Galactic</th>
21+
<th>Foxy (EOL)</th>
22+
<th>Galactic (EOL)</th>
2323
<th>Humble</th>
24+
<th>Iron</th>
2425
<th>Rolling</th>
2526
</tr>
2627
<tr>
2728
<th>Branch</th>
2829
<td><a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/foxy">foxy</a></td>
2930
<td><a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/galactic">galactic</a></td>
3031
<td><a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/humble">humble</a></td>
32+
<td><a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/iron">iron</a></td>
3133
<td><a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/main">main</a></td>
3234
</tr>
3335
<tr>
34-
<th>Build Status</th>
36+
<th>Release status</th>
3537
<td>
3638
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/foxy-binary-build.yml?query=event%3Aschedule++">
3739
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/foxy-binary-build.yml/badge.svg?event=schedule"
3840
alt="Foxy Binary Build"/>
3941
</a> <br />
40-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/foxy-semi-binary-build.yml?query=event%3Aschedule++">
41-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/foxy-semi-binary-build.yml/badge.svg?event=schedule"
42-
alt="Foxy Semi-Binary Build"/>
43-
</a>
4442
</td>
4543
<td>
4644
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/galactic-binary-build.yml?query=event%3Aschedule++">
4745
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/galactic-binary-build.yml/badge.svg?event=schedule"
4846
alt="Galactic Binary Build"/>
4947
</a> <br />
50-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/galactic-semi-binary-build.yml?query=event%3Aschedule++">
51-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/galactic-semi-binary-build.yml/badge.svg?event=schedule"
52-
alt="Galactic Semi-Binary Build"/>
53-
</a>
5448
</td>
5549
<td>
56-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/humble-binary-main.yml?query=event%3Aschedule++">
57-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/humble-binary-main.yml/badge.svg?event=schedule"
58-
alt="Humble Binary Main"/>
59-
</a> <br />
60-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/humble-binary-testing.yml?query=event%3Aschedule++">
61-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/humble-binary-testing.yml/badge.svg?event=schedule"
62-
alt="Humble Binary Testing"/>
63-
</a> <br />
64-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/humble-semi-binary-main.yml?query=event%3Aschedule++">
65-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/humble-semi-binary-main.yml/badge.svg?event=schedule"
66-
alt="Humble Semi-Binary Main"/>
67-
</a> <br />
68-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/humble-semi-binary-testing.yml?query=event%3Aschedule++">
69-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/humble-semi-binary-testing.yml/badge.svg?event=schedule"
70-
alt="Humble Semi-Binary Testing"/>
71-
</a>
50+
<a href='https://build.ros2.org/job/Hbin_uJ64__ur_calibration__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Hbin_uJ64__ur_calibration__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_calibration'></a><br/>
51+
<a href='https://build.ros2.org/job/Hbin_uJ64__ur_controllers__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Hbin_uJ64__ur_controllers__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_controllers'></a>
52+
<a href='https://build.ros2.org/job/Hbin_uJ64__ur_dashboard_msgs__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Hbin_uJ64__ur_dashboard_msgs__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_dashboard_msgs'></a>
53+
<a href='https://build.ros2.org/job/Hbin_uJ64__ur_moveit_config__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Hbin_uJ64__ur_moveit_config__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_moveit_config'></a>
54+
<a href='https://build.ros2.org/job/Hbin_uJ64__ur_robot_driver__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Hbin_uJ64__ur_robot_driver__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_robot_driver'></a>
7255
</td>
7356
<td>
74-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/rolling-binary-main.yml?query=branch%3Amain+">
75-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/rolling-binary-main.yml/badge.svg?branch=main"
76-
alt="Rolling Binary Main"/>
77-
</a> <br />
78-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/rolling-binary-testing.yml?query=branch%3Amain+">
79-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/rolling-binary-testing.yml/badge.svg?branch=main"
80-
alt="Rolling Binary Testing"/>
81-
</a> <br />
82-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/rolling-semi-binary-main.yml?query=branch%3Amain+">
83-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/rolling-semi-binary-main.yml/badge.svg?branch=main"
84-
alt="Rolling Semi-Binary Main"/>
85-
</a> <br />
86-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/rolling-semi-binary-testing.yml?query=branch%3Amain+">
87-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/rolling-semi-binary-testing.yml/badge.svg?branch=main"
88-
alt="Rolling Semi-Binary Testing"/>
89-
</a>
57+
<a href='https://build.ros2.org/job/Ibin_uJ64__ur_calibration__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Ibin_uJ64__ur_calibration__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_calibration'></a><br/>
58+
<a href='https://build.ros2.org/job/Ibin_uJ64__ur_controllers__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Ibin_uJ64__ur_controllers__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_controllers'></a>
59+
<a href='https://build.ros2.org/job/Ibin_uJ64__ur_dashboard_msgs__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Ibin_uJ64__ur_dashboard_msgs__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_dashboard_msgs'></a>
60+
<a href='https://build.ros2.org/job/Ibin_uJ64__ur_moveit_config__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Ibin_uJ64__ur_moveit_config__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_moveit_config'></a>
61+
<a href='https://build.ros2.org/job/Ibin_uJ64__ur_robot_driver__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Ibin_uJ64__ur_robot_driver__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_robot_driver'></a>
62+
</td>
63+
<td>
64+
<a href='https://build.ros2.org/job/Rbin_uJ64__ur_calibration__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Rbin_uJ64__ur_calibration__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_calibration'></a><br/>
65+
<a href='https://build.ros2.org/job/Rbin_uJ64__ur_controllers__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Rbin_uJ64__ur_controllers__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_controllers'></a>
66+
<a href='https://build.ros2.org/job/Rbin_uJ64__ur_dashboard_msgs__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Rbin_uJ64__ur_dashboard_msgs__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_dashboard_msgs'></a>
67+
<a href='https://build.ros2.org/job/Rbin_uJ64__ur_moveit_config__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Rbin_uJ64__ur_moveit_config__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_moveit_config'></a>
68+
<a href='https://build.ros2.org/job/Rbin_uJ64__ur_robot_driver__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Rbin_uJ64__ur_robot_driver__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_robot_driver'></a>
9069
</td>
9170
</tr>
9271
</table>
9372

73+
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.
9474

95-
**NOTE**: There are two build stages checking current and future compatibility of the driver.
96-
97-
1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that
98-
direct local build is possible and is the most relevant workflow for users.
99-
100-
Uses repos file: `src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released.<ros-distro>.repos`
101-
102-
1. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source.
103-
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.
104-
105-
Uses repos file: `src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver.repos`
106-
107-
Each of these stages also performs integration tests using ursim. In order to execute these tests locally, they have to be enabled:
108-
```
109-
colcon build --packages-select ur_robot_driver --cmake-args -DUR_ROBOT_DRIVER_BUILD_INTEGRATION_TESTS=On
110-
```
111-
75+
A more [detailed build status](ci_status.md) shows the state of all CI workflows inside this repo.
76+
Please note that the detailed view is intended for developers, while the one here should give end
77+
users an overview of the current released state.
11278

11379
## Packages in the Repository:
11480

@@ -188,11 +154,14 @@ building might fail occasionally.
188154
source install/setup.bash
189155
```
190156

191-
6. When consecutive pulls leads to build errors, please make sure to update the upstream packages before
192-
filing an issue:
157+
6. When consecutive pulls lead to build errors it is possible that you'll have to build an upstream
158+
package from source, as well. See the [detailed build status](ci_status.md). When the binary builds are red, but
159+
the semi-binary builds are green, you need to build the upstream dependencies from source. The
160+
easiest way to achieve this, is using the repos file:
161+
193162
```
194163
cd $COLCON_WS
195-
vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released.${ROS_DISTRO}.repos
164+
vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver.${ROS_DISTRO}.repos
196165
rosdep update
197166
rosdep install --ignore-src --from-paths src -y
198167
```
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# The not-released files are meant to use upstream packages in binary form whenever possible.
2+
# Packages get added here, if they are not released at all or when the repo's current version
3+
# requires a newer version than the one currently released to the target distributions.
4+
# Once Upstream packages are released and synced to the target distributions in the required
5+
# version, the entry in this file shall be removed again.
6+
repositories:
7+
Universal_Robots_ROS2_Description:
8+
type: git
9+
url: https://github.com/UniversalRobots/Universal_Robots_ROS2_Description.git
10+
version: ros2
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
repositories:
2+
Universal_Robots_Client_Library:
3+
type: git
4+
url: https://github.com/UniversalRobots/Universal_Robots_Client_Library.git
5+
version: master
6+
Universal_Robots_ROS2_Description:
7+
type: git
8+
url: https://github.com/UniversalRobots/Universal_Robots_ROS2_Description.git
9+
version: ros2
10+
ur_msgs:
11+
type: git
12+
url: https://github.com/ros-industrial/ur_msgs.git
13+
version: foxy-devel
14+
ros2_control:
15+
type: git
16+
url: https://github.com/ros-controls/ros2_control.git
17+
version: master
18+
ros2_controllers:
19+
type: git
20+
url: https://github.com/ros-controls/ros2_controllers
21+
version: master
22+
kinematics_interface:
23+
type: git
24+
url: https://github.com/ros-controls/kinematics_interface.git
25+
version: master
26+
control_msgs:
27+
type: git
28+
url: https://github.com/ros-controls/control_msgs.git
29+
version: humble

0 commit comments

Comments
 (0)