Skip to content

Commit 73a9dad

Browse files
Add lyrical workflows and bump ubuntu version for rolling (#767)
1 parent 23110df commit 73a9dad

9 files changed

Lines changed: 223 additions & 6 deletions

.github/workflows/build_and_publish_debian_docker.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ jobs:
4141
- ros_distro: 'kilted'
4242
debian_version: 'debian12'
4343
exclude_packages: ''
44+
- ros_distro: 'lyrical'
45+
debian_version: 'debian12'
46+
exclude_packages: ''
4447
- ros_distro: 'rolling'
4548
debian_version: 'debian12'
4649
exclude_packages: ''

.github/workflows/build_and_publish_ubuntu_docker.yaml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,11 @@ jobs:
4040
- ros_distro: 'kilted'
4141
base_image: 'ubuntu:noble'
4242
ros-repo-packages: ""
43+
- ros_distro: 'lyrical'
44+
base_image: 'ubuntu:resolute'
45+
ros-repo-packages: ""
4346
- ros_distro: 'rolling'
44-
base_image: 'ubuntu:noble'
47+
base_image: 'ubuntu:resolute'
4548
ros-repo-packages: ""
4649
- ros_distro: 'humble'
4750
base_image: 'ubuntu:jammy'
@@ -52,8 +55,11 @@ jobs:
5255
- ros_distro: 'kilted'
5356
base_image: 'ubuntu:noble'
5457
ros-repo-packages: "-testing"
58+
- ros_distro: 'lyrical'
59+
base_image: 'ubuntu:resolute'
60+
ros-repo-packages: "-testing"
5561
- ros_distro: 'rolling'
56-
base_image: 'ubuntu:noble'
62+
base_image: 'ubuntu:resolute'
5763
ros-repo-packages: "-testing"
5864
steps:
5965
- uses: actions/checkout@v6
@@ -102,7 +108,7 @@ jobs:
102108
strategy:
103109
fail-fast: false
104110
matrix:
105-
ROS_DISTRO: [rolling, humble, jazzy, kilted]
111+
ROS_DISTRO: [rolling, humble, jazzy, kilted, lyrical]
106112
ROS_REPO: [main, testing]
107113
with:
108114
ros_distro: ${{ matrix.ROS_DISTRO }}
@@ -118,7 +124,7 @@ jobs:
118124
strategy:
119125
fail-fast: false
120126
matrix:
121-
ROS_DISTRO: [kilted, humble, jazzy]
127+
ROS_DISTRO: [kilted, humble, jazzy, lyrical]
122128
ROS_REPO: [main, testing]
123129
with:
124130
ros_distro: ${{ matrix.ROS_DISTRO }}

.github/workflows/debian-stack-build.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ on:
1010
- 'ros_controls.humble.repos'
1111
- 'ros_controls.jazzy.repos'
1212
- 'ros_controls.kilted.repos'
13+
- 'ros_controls.lyrical.repos'
1314
- 'ros_controls.rolling.repos'
1415
push: *event
1516
schedule:
@@ -44,7 +45,7 @@ jobs:
4445
strategy:
4546
fail-fast: false
4647
matrix:
47-
ROS_DISTRO: [humble, jazzy, kilted, rolling]
48+
ROS_DISTRO: [humble, jazzy, kilted, lyrical, rolling]
4849
with:
4950
ros_distro: ${{ matrix.ROS_DISTRO }}
5051
target_workspace: ros_controls.${{ matrix.ROS_DISTRO }}.repos
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Lyrical Stack Build
2+
# author: Denis Štogl <denis@stoglrobotics.de>
3+
# description: 'Build & test all dependencies from released (binary) packages.'
4+
5+
on:
6+
workflow_dispatch:
7+
pull_request:
8+
paths:
9+
- '.github/workflows/lyrical-binary-build.yml'
10+
- '.github/workflows/reusable-industrial-ci-with-cache.yml'
11+
- 'ros_controls.lyrical.repos'
12+
push:
13+
branches:
14+
- master
15+
paths:
16+
- '.github/workflows/lyrical-binary-build.yml'
17+
- '.github/workflows/reusable-industrial-ci-with-cache.yml'
18+
- 'ros_controls.lyrical.repos'
19+
schedule:
20+
# Run every morning to detect flakiness and broken dependencies
21+
- cron: '03 1 * * *'
22+
23+
concurrency:
24+
# cancel previous runs of the same workflow, except for pushes on given branches
25+
group: ${{ github.workflow }}-${{ github.ref }}
26+
cancel-in-progress: ${{ !startsWith(github.ref, 'refs/heads') }}
27+
28+
jobs:
29+
stack-build-gate:
30+
runs-on: ubuntu-latest
31+
outputs:
32+
skip_stack_build: ${{ steps.gate.outputs.skip_stack_build }}
33+
steps:
34+
- name: Checkout
35+
uses: actions/checkout@v6
36+
- name: Evaluate stack build gate
37+
id: gate
38+
uses: ./.github/actions/stack-build-gate
39+
with:
40+
blocked_paths: |
41+
- '.github/workflows/build_and_publish_ubuntu_docker.yaml'
42+
- 'ros2_ubuntu/**'
43+
44+
stack-build:
45+
needs: stack-build-gate
46+
if: ${{ needs.stack-build-gate.outputs.skip_stack_build != 'true' }}
47+
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
48+
strategy:
49+
fail-fast: false
50+
matrix:
51+
ROS_DISTRO: [lyrical]
52+
ROS_REPO: [main, testing]
53+
with:
54+
ros_distro: ${{ matrix.ROS_DISTRO }}
55+
ros_repo: ${{ matrix.ROS_REPO }}
56+
target_workspace: ros_controls.${{ matrix.ROS_DISTRO }}.repos
57+
ref_for_scheduled_build: master
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Check Rolling Compatibility on Lyrical
2+
# author: Christoph Froehlich <christoph.froehlich@ait.ac.at>
3+
# description: 'Build & test the rolling stack on lyrical distro.'
4+
5+
on:
6+
workflow_dispatch:
7+
pull_request:
8+
paths:
9+
- '.github/workflows/rolling-compatibility-lyrical-binary-build.yml'
10+
- '.github/workflows/reusable-industrial-ci-with-cache.yml'
11+
- 'ros_controls.rolling-on-lyrical.repos'
12+
push:
13+
branches:
14+
- master
15+
paths:
16+
- '.github/workflows/rolling-compatibility-lyrical-binary-build.yml'
17+
- '.github/workflows/reusable-industrial-ci-with-cache.yml'
18+
- 'ros_controls.rolling-on-lyrical.repos'
19+
schedule:
20+
# Run every morning to detect flakiness and broken dependencies
21+
- cron: '03 1 * * *'
22+
23+
concurrency:
24+
# cancel previous runs of the same workflow, except for pushes on given branches
25+
group: ${{ github.workflow }}-${{ github.ref }}
26+
cancel-in-progress: ${{ !startsWith(github.ref, 'refs/heads') }}
27+
28+
jobs:
29+
stack-build-gate:
30+
runs-on: ubuntu-latest
31+
outputs:
32+
skip_stack_build: ${{ steps.gate.outputs.skip_stack_build }}
33+
steps:
34+
- name: Checkout
35+
uses: actions/checkout@v6
36+
- name: Evaluate stack build gate
37+
id: gate
38+
uses: ./.github/actions/stack-build-gate
39+
with:
40+
blocked_paths: |
41+
- '.github/workflows/build_and_publish_ubuntu_docker.yaml'
42+
- 'ros2_ubuntu/**'
43+
44+
stack-build-on-lyrical:
45+
needs: stack-build-gate
46+
if: ${{ needs.stack-build-gate.outputs.skip_stack_build != 'true' }}
47+
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
48+
strategy:
49+
fail-fast: false
50+
matrix:
51+
ROS_DISTRO: [lyrical]
52+
ROS_REPO: [main, testing]
53+
with:
54+
ros_distro: ${{ matrix.ROS_DISTRO }}
55+
ros_repo: ${{ matrix.ROS_REPO }}
56+
target_workspace: ros_controls.rolling-on-lyrical.repos
57+
ref_for_scheduled_build: master

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ Within this repo the full ros2_control stack is built and tested once per day.
1111

1212
| Platform | Build status |
1313
| --- | --- |
14-
| Ubuntu | [![Rolling Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/rolling-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/rolling-binary-build.yml) [![Kilted Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/kilted-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/kilted-binary-build.yml) [![Jazzy Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/jazzy-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/jazzy-binary-build.yml) [![Humble Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/humble-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/humble-binary-build.yml) |
14+
| Ubuntu | [![Rolling Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/rolling-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/rolling-binary-build.yml) [![Lyrical Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/lyrical-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/lyrical-binary-build.yml) [![Kilted Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/kilted-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/kilted-binary-build.yml) [![Jazzy Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/jazzy-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/jazzy-binary-build.yml) [![Humble Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/humble-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/humble-binary-build.yml) |
1515
| Debian | [![Debian Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/debian-stack-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/debian-stack-build.yml) |
1616
| RHEL | [![RHEL Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/rhel-stack-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/rhel-stack-build.yml) |
1717
| Windows | [![Windows Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/windows-stack-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/windows-stack-build.yml) |
1818

1919
## Compatibility versions
2020
We thrive to make the rolling development version of the ros2_control stack compatible with earlier releases of ROS 2. This is done by building the rolling version of the stack from source with the earlier releases of ROS 2.
2121

22+
[![Check Rolling Compatibility on Lyrical with Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/rolling-compatibility-lyrical-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/rolling-compatibility-lyrical-binary-build.yml)
23+
2224
[![Check Rolling Compatibility on Kilted with Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/rolling-compatibility-kilted-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/rolling-compatibility-kilted-binary-build.yml)
2325

2426
[![Check Rolling Compatibility on Jazzy with Stack Build](https://github.com/ros-controls/ros2_control_ci/actions/workflows/rolling-compatibility-jazzy-binary-build.yml/badge.svg)](https://github.com/ros-controls/ros2_control_ci/actions/workflows/rolling-compatibility-jazzy-binary-build.yml)

ros2_ubuntu/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
7575
ros-${ROS_DISTRO}-rmw-cyclonedds-cpp \
7676
ros-${ROS_DISTRO}-sdformat-urdf \
7777
ros-${ROS_DISTRO}-xacro \
78+
$(if [ $(lsb_release -sc) = "resolute" ]; then echo "libssl-dev python3-dev clang lcov python3-rosinstall-generator python3-pip python3-pytest-cov python3-flake8-blind-except python3-flake8-class-newline python3-flake8-deprecated python3-pytest-repeat python3-pytest-rerunfailures ros-dev-tools python3-colcon-coveragepy-result python3-colcon-lcov-result python3-colcon-meson python3-colcon-mixin python3-importlib-metadata libclang-rt-dev"; fi) \
7879
$(if [ $(lsb_release -sc) = "noble" ]; then echo "libssl-dev python3-dev clang lcov python3-rosinstall-generator python3-pip python3-pytest-cov python3-flake8-blind-except python3-flake8-class-newline python3-flake8-deprecated python3-pytest-repeat python3-pytest-rerunfailures ros-dev-tools python3-colcon-coveragepy-result python3-colcon-lcov-result python3-colcon-meson python3-colcon-mixin python3-importlib-metadata libclang-rt-dev"; fi) \
7980
$(if [ $(lsb_release -sc) = "jammy" ]; then echo "libssl-dev python3-dev clang lcov python3-rosinstall-generator python3-flake8-docstrings python3-pip python3-pytest-cov python3-flake8-blind-except python3-flake8-builtins python3-flake8-class-newline python3-flake8-comprehensions python3-flake8-deprecated python3-flake8-import-order python3-flake8-quotes python3-pytest-repeat python3-pytest-rerunfailures ros-dev-tools python3-colcon-coveragepy-result python3-colcon-lcov-result python3-colcon-meson python3-colcon-mixin libasio-dev libtinyxml2-dev"; fi) \
8081
&& rm -rf /var/lib/apt/lists/*

ros_controls.lyrical.repos

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
repositories:
2+
ros-controls/control_msgs:
3+
type: git
4+
url: https://github.com/ros-controls/control_msgs.git
5+
version: master
6+
ros-controls/control_toolbox:
7+
type: git
8+
url: https://github.com/ros-controls/control_toolbox.git
9+
version: master
10+
ros-controls/gz_ros2_control:
11+
type: git
12+
url: https://github.com/ros-controls/gz_ros2_control.git
13+
version: rolling
14+
ros-controls/kinematics_interface:
15+
type: git
16+
url: https://github.com/ros-controls/kinematics_interface.git
17+
version: master
18+
ros-controls/realtime_tools:
19+
type: git
20+
url: https://github.com/ros-controls/realtime_tools.git
21+
version: master
22+
ros-controls/ros2_control:
23+
type: git
24+
url: https://github.com/ros-controls/ros2_control.git
25+
version: master
26+
ros-controls/ros2_control_demos:
27+
type: git
28+
url: https://github.com/ros-controls/ros2_control_demos.git
29+
version: master
30+
ros-controls/ros2_controllers:
31+
type: git
32+
url: https://github.com/ros-controls/ros2_controllers.git
33+
version: master
34+
ros-controls/ros2_control_cmake:
35+
type: git
36+
url: https://github.com/ros-controls/ros2_control_cmake.git
37+
version: master
38+
ros-controls/topic_based_hardware_interfaces:
39+
type: git
40+
url: https://github.com/ros-controls/topic_based_hardware_interfaces.git
41+
version: main
42+
ros-controls/mujoco_ros2_control:
43+
type: git
44+
url: https://github.com/ros-controls/mujoco_ros2_control.git
45+
version: main
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
repositories:
2+
ros-controls/control_msgs:
3+
type: git
4+
url: https://github.com/ros-controls/control_msgs.git
5+
version: master
6+
ros-controls/control_toolbox:
7+
type: git
8+
url: https://github.com/ros-controls/control_toolbox.git
9+
version: master
10+
ros-controls/gz_ros2_control:
11+
type: git
12+
url: https://github.com/ros-controls/gz_ros2_control.git
13+
version: rolling
14+
ros-controls/kinematics_interface:
15+
type: git
16+
url: https://github.com/ros-controls/kinematics_interface.git
17+
version: master
18+
ros-controls/realtime_tools:
19+
type: git
20+
url: https://github.com/ros-controls/realtime_tools.git
21+
version: master
22+
ros-controls/ros2_control:
23+
type: git
24+
url: https://github.com/ros-controls/ros2_control.git
25+
version: master
26+
ros-controls/ros2_control_demos:
27+
type: git
28+
url: https://github.com/ros-controls/ros2_control_demos.git
29+
version: master
30+
ros-controls/ros2_controllers:
31+
type: git
32+
url: https://github.com/ros-controls/ros2_controllers.git
33+
version: master
34+
ros-controls/ros2_control_cmake:
35+
type: git
36+
url: https://github.com/ros-controls/ros2_control_cmake.git
37+
version: master
38+
ros-controls/topic_based_hardware_interfaces:
39+
type: git
40+
url: https://github.com/ros-controls/topic_based_hardware_interfaces.git
41+
version: main
42+
ros-controls/mujoco_ros2_control:
43+
type: git
44+
url: https://github.com/ros-controls/mujoco_ros2_control.git
45+
version: main

0 commit comments

Comments
 (0)