@@ -222,7 +222,9 @@ jobs:
222222 catkin_make_isolated ${{ matrix.CATKIN_OPTIONS }} --cmake-args -DCATKIN_ENABLE_TESTING=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ${{ matrix.CMAKE_OPTIONS }}
223223 shell : bash
224224
225- # ROS-O setup https://github.com/v4hn/ros-o-builder/blob/jammy-one/README.md#install-instructions
225+ # ROS-O setup for v4hn https://github.com/v4hn/ros-o-builder/blob/jammy-one/README.md#install-instructions
226+ # ROS-O setup for techfak https://ros.packages.techfak.net/
227+ # note that v4hn uses ROS_DISTRO=one and techfak uses ROS_DISTRO
226228 ros-o :
227229 runs-on : ubuntu-latest
228230
@@ -231,7 +233,13 @@ jobs:
231233 matrix :
232234 include :
233235 - DISTRO : ubuntu:22.04
234- ROS_REPOSITORY_URL : https://raw.githubusercontent.com/v4hn/ros-o-builder/jammy-one/repository
236+ ROS_ONE_VARIANT : v4hn
237+ ROS_REPOSITORY_URL : " deb [trusted=yes] https://raw.githubusercontent.com/v4hn/ros-o-builder/jammy-one/repository ./"
238+ ROSDEP_PACKAGE_MAPPING : " yaml https://raw.githubusercontent.com/v4hn/ros-o-builder/jammy-one/repository/local.yaml debian"
239+ - DISTRO : ubuntu:24.04
240+ ROS_ONE_VARIANT : techfak
241+ ROS_REPOSITORY_URL : " deb [trusted=yes] https://ros.packages.techfak.net noble main"
242+ ROSDEP_PACKAGE_MAPPING : " yaml https://ros.packages.techfak.net/ros-one.yaml ubuntu"
235243
236244 container : ${{ matrix.DISTRO }}
237245
@@ -245,26 +253,41 @@ jobs:
245253 - name : Setup ROS-O deb repository
246254 run : |
247255 set -x
248- apt update && apt install -qq -y ca-certificates
249- echo "deb [trusted=yes] ${{ matrix.ROS_REPOSITORY_URL }}/ ./" | tee /etc/apt/sources.list.d/ros-o-builder.list
256+ apt update && apt install -qq -y ca-certificates git
257+ echo ${{ matrix.ROS_REPOSITORY_URL }} | tee /etc/apt/sources.list.d/ros-o-builder.list
250258 ##
251259 # https://github.com/v4hn/ros-deb-builder-action/blob/b7c0ed93fde3a86b5b1027bf8f7145cad6067c90/prepare.sh#L27-L28
252260 # Canonical dropped the Debian ROS packages from 24.04 for political reasons. Wow.
253- test "${{ matrix.DISTRO }}" = "ubuntu:24.04" && apt install -y software-properties-common retry && retry -d 50,10,30,300 -t 12 add-apt-repository -y ppa:v-launchpad-jochen-sprickerhof-de/ros
261+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "v4hn" && "${{ matrix. DISTRO }}" == "ubuntu:24.04" ]]; then apt install -y software-properties-common retry && retry -d 50,10,30,300 -t 12 add-apt-repository -y ppa:v-launchpad-jochen-sprickerhof-de/ros; fi
254262 ##
255263 apt update
256- apt install -qq -y python3-rosdep2
257- echo "yaml ${{ matrix.ROS_REPOSITORY_URL }}/local.yaml debian" | tee /etc/ros/rosdep/sources.list.d/1-ros-o-builder.list
264+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "v4hn" ]]; then
265+ apt install -qq -y python3-rosdep2
266+ fi
267+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "techfak" ]]; then
268+ # Do not install python3-rosdep2, which is an outdated version of rosdep shipped via the Ubuntu repositories (instead of ROS)!
269+ apt install -qq -y python3-rosdep
270+ rosdep init
271+ fi
272+ echo ${{ matrix.ROSDEP_PACKAGE_MAPPING }} | tee /etc/ros/rosdep/sources.list.d/1-ros-o-builder.list
258273 rosdep update
274+ shell : bash
259275
260276 - name : Setup catkin-tools
261277 run : |
262278 set -x
263279 # setup catkin tools
264280 apt install -qq -y python3-pip
265- pip3 install catkin-tools
281+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "v4hn" ]]; then
282+ pip3 install catkin-tools==0.9.4
283+ apt install -qq -y catkin
284+ fi
285+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "techfak" ]]; then
286+ apt install -qq -y ros-one-catkin python3-catkin-tools
287+ fi
266288 # setup build tools
267- apt install -qq -y cmake build-essential catkin ros-one-rosbash
289+ apt install -qq -y cmake build-essential ros-one-rosbash
290+ shell : bash
268291
269292 - name : Setup Workspace
270293 run : |
@@ -273,8 +296,15 @@ jobs:
273296 # setup workspace
274297 mkdir -p ~/ws/src
275298 cd ~/ws/src
299+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "techfak" ]]; then
300+ # TODO: remove these lines and uncomment https://github.com/ubi-agni/ros-builder-action/blob/191fab06004ad5784c28cf2ba2b18f6d163a860d/ros-one.repos#L1089
301+ git clone https://github.com/locusrobotics/catkin_virtualenv.git
302+ fi
276303 ln -sf $GITHUB_WORKSPACE .
277304 rosdep install -qq -r -y --from-path . --ignore-src || echo "OK"
305+ # check all system packages are able to install, because ROS-O build deb files that needs all packages
306+ PIP_BREAK_SYSTEM_PACKAGES=1 rosdep install -qq --simulate -y --from-path . --ignore-src -t exec -t buildtool_export -t buildtool -t build -t build_export | tee rosdep-install.sh
307+ sed 's/apt-get install/apt-get -y install/;/install ros-one/s/^/#/;/pip3 install/s/^/#/' rosdep-install.sh | bash -xe
278308 shell : bash
279309
280310 - name : Compile Packages
0 commit comments