Skip to content

Commit 41afcbe

Browse files
Merge branch 'master' into fix-debian-coal
2 parents d5a0347 + 36196e4 commit 41afcbe

6 files changed

Lines changed: 27 additions & 8 deletions

File tree

.github/workflows/reusable-build-coverage.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
echo ~/.local/opt/node/bin >> $GITHUB_PATH
4343
4444
# overwrite ros distro with testing
45-
- uses: ros-tooling/setup-ros@0.7.16
45+
- uses: ros-tooling/setup-ros@0.7.17
4646
if: ${{ steps.prereq.outputs.need_ros2 == '1' }}
4747
with:
4848
use-ros2-testing: true
@@ -86,7 +86,7 @@ jobs:
8686
echo "repo_file=" >> $GITHUB_OUTPUT
8787
fi
8888
89-
- uses: ros-tooling/action-ros-ci@0.4.7
89+
- uses: ros-tooling/action-ros-ci@0.4.8
9090
with:
9191
target-ros2-distro: ${{ inputs.ros_distro }}
9292
import-token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/reusable-pre-commit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
echo ~/.local/opt/node/bin >> $GITHUB_PATH
4040
4141
# needed only if a non-ros image is used
42-
- uses: ros-tooling/setup-ros@0.7.16
42+
- uses: ros-tooling/setup-ros@0.7.17
4343
if: ${{ steps.prereq.outputs.need_ros2 == '1' }}
4444
with:
4545
use-ros2-testing: true

.github/workflows/reusable-ros-tooling-source-build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
echo ~/.local/opt/node/bin >> $GITHUB_PATH
6767
6868
# needed only if a non-ros image is used
69-
- uses: ros-tooling/setup-ros@0.7.16
69+
- uses: ros-tooling/setup-ros@0.7.17
7070
with:
7171
use-ros2-testing: true
7272

@@ -102,7 +102,7 @@ jobs:
102102
echo "vcs_file_path=" >> $GITHUB_OUTPUT
103103
fi
104104
105-
- uses: ros-tooling/action-ros-ci@0.4.7
105+
- uses: ros-tooling/action-ros-ci@0.4.8
106106
with:
107107
target-ros2-distro: ${{ inputs.ros_distro }}
108108
ref: ${{ github.event_name == 'schedule' && inputs.ref || '' }}

.github/workflows/reusable-ros-tooling-win-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ on:
4040
type: string
4141
skip_dependencies:
4242
description: "Space-separated list of packages to skip from rosinstall_generator dependency resolution"
43-
default: "sdformat_urdf eigenpy hpp-fcl"
43+
default: "sdformat_urdf eigenpy hpp-fcl coal"
4444
required: false
4545
type: string
4646
skip_packages:

.github/workflows/reusable-rosdoc2.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
echo ~/.local/opt/node/bin >> $GITHUB_PATH
3434
3535
# needed only if a non-ros image is used
36-
- uses: ros-tooling/setup-ros@0.7.16
36+
- uses: ros-tooling/setup-ros@0.7.17
3737
if: ${{ steps.prereq.outputs.need_ros2 == '1' }}
3838
with:
3939
use-ros2-testing: true

ros2_ubuntu/Dockerfile

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ ENV ROS_DISTRO=${ROS_DISTRO}
6464
# typical manual dev dependencies,
6565
# and dependencies which ros-tooling/setup-ros would install see
6666
# https://github.com/ros-tooling/setup-ros/blob/master/src/package_manager/apt.ts
67+
# on resolute, install an explicit GCC toolchain so clang can resolve -lstdc++
6768
RUN apt-get update && apt-get install -y --no-install-recommends \
6869
ros-${ROS_DISTRO}-ros-base \
6970
libboost-dev \
@@ -75,11 +76,29 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
7576
ros-${ROS_DISTRO}-rmw-cyclonedds-cpp \
7677
ros-${ROS_DISTRO}-sdformat-urdf \
7778
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) \
79+
$(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"; fi) \
7980
$(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) \
8081
$(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) \
82+
$(if [ $(lsb_release -sc) = "resolute" ]; then echo "build-essential"; fi) \
8183
&& rm -rf /var/lib/apt/lists/*
8284

85+
# TODO(christophfroehlich): remove once https://github.com/ros-controls/ros2_control_ci/issues/791 is fixed
86+
# On resolute, clang-21 fails to auto-detect the GCC 15 installation:
87+
# - /usr/lib/x86_64-linux-gnu/libstdc++.so is missing (ld can't find -lstdc++) -> create symlink
88+
# - C++ standard library headers are not found (<cmath> etc.) -> write a clang config file
89+
RUN if [ "$(lsb_release -sc)" = "resolute" ]; then \
90+
GCC_VER=$(ls /usr/lib/gcc/x86_64-linux-gnu/ | sort -V | tail -1) && \
91+
GCC_LIB=$(find /usr/lib/gcc/x86_64-linux-gnu/${GCC_VER} -name "libstdc++.so" 2>/dev/null | tail -1) && \
92+
[ -n "$GCC_LIB" ] && ln -sf "${GCC_LIB}" /usr/lib/x86_64-linux-gnu/libstdc++.so && \
93+
CLANG_BIN=$(dirname $(readlink -f $(which clang++))) && \
94+
echo "--gcc-install-dir=/usr/lib/gcc/x86_64-linux-gnu/${GCC_VER}" >> "${CLANG_BIN}/clang++.cfg" && \
95+
echo "Configured clang++ with GCC ${GCC_VER} (${CLANG_BIN}/clang++.cfg)"; \
96+
fi && \
97+
clang++ -v && \
98+
printf '#include <cmath>\nint main(){}\n' > test.cpp && \
99+
clang++ test.cpp && \
100+
rm test.cpp
101+
83102
# Bootstrap rosdep
84103
RUN rosdep init && \
85104
rosdep update --rosdistro $ROS_DISTRO

0 commit comments

Comments
 (0)