@@ -125,6 +125,7 @@ jobs:
125125 # - DISTRO: ubuntu:22.04
126126 # CATKIN_OPTIONS: "--ignore-pkg image_view2"
127127 # CMAKE_OPTIONS: "-DCMAKE_CXX_FLAGS=-std=c++11"
128+ - DISTRO : ubuntu:24.04
128129
129130 container : ${{ matrix.DISTRO }}
130131
@@ -137,11 +138,17 @@ jobs:
137138 set -x
138139 echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
139140 apt update -q
141+ ##
142+ # https://github.com/v4hn/ros-deb-builder-action/blob/b7c0ed93fde3a86b5b1027bf8f7145cad6067c90/prepare.sh#L27-L28
143+ # Canonical dropped the Debian ROS packages from 24.04 for political reasons. Wow.
144+ 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
145+ ##
140146 apt install -y -q -qq catkin git curl build-essential libboost-all-dev python3-pip python3-venv python3-rosdep2
141- apt install -y -q -qq ros-desktop-dev rosbash
142- apt install -y -q -qq libself-test-dev libpcl-ros-dev
143- apt install -y -q -qq ros-core-dev ros-robot-dev
144- pip install vcstool
147+ test "${{ matrix.DISTRO }}" = "ubuntu:22.04" && apt install -y -q -qq ros-desktop-dev rosbash
148+ test "${{ matrix.DISTRO }}" = "ubuntu:22.04" && apt install -y -q -qq libself-test-dev libpcl-ros-dev
149+ test "${{ matrix.DISTRO }}" = "ubuntu:22.04" && apt install -y -q -qq ros-core-dev ros-robot-dev
150+ test "${{ matrix.DISTRO }}" = "ubuntu:22.04" && pip install vcstool
151+ test "${{ matrix.DISTRO }}" != "ubuntu:22.04" && apt install -y -q -qq pipx && pipx install vcstool
145152 rosdep update
146153
147154 - name : Setup rosinstall_generator
@@ -152,23 +159,48 @@ jobs:
152159 cd rosinstall_generator
153160 python3 ./setup.py install
154161
155- - name : Setup Dependencies Workspace
162+ - name : Setup 24.04 Dependencies Workspace
163+ if : matrix.DISTRO != 'ubuntu:22.04'
156164 run : |
157165 set -x
158166 # install dependencies
159- mkdir -p ~/ws_depend/src
160- cd ~/ws_depend/src
161- ROS_PACKAGE_PATH=/usr/share rosinstall_generator --rosdistro noetic --from-path $GITHUB_WORKSPACE --deps --exclude RPP --depend-type buildtool build | tee repos
162- vcs import --shallow < repos
163- # override to use latest development for 22.04
164- rosinstall_generator laser_filters laser_assembler map_server --rosdistro noetic --upstream-development | vcs import --force
167+ mkdir -p ~/ws_depend/src/ros-o
168+ cd ~/ws_depend/src/ros-o
169+ git clone https://github.com/ros-o/rosconsole.git
170+ git clone https://github.com/ros-o/gencpp.git
171+ git clone https://github.com/ros-o/ros_comm.git
172+ git clone https://github.com/ros-o/catkin_virtualenv.git
173+ git clone https://github.com/ros-o/perception_pcl.git
174+ export PATH=/github/home/.local/bin:$PATH # for 24.04, vcs installed with pipx
175+ ROS_PACKAGE_PATH=/usr/share:$(pwd) rosinstall_generator --rosdistro noetic --deps --exclude RPP --repos message_runtime message_generation | vcs import --shallow
176+ ROS_PACKAGE_PATH=/usr/share:$(pwd) rosinstall_generator --rosdistro noetic rosbash | vcs import --shallow
177+
178+ - name : Setup 22.04 Dependencies Workspace
179+ if : matrix.DISTRO == 'ubuntu:22.04'
180+ run : |
181+ set -x
182+ # install dependencies
183+ mkdir -p ~/ws_depend/src/ros-o
184+ cd ~/ws_depend/src/ros-o
165185 rosinstall_generator catkin_virtualenv --rosdistro noetic | vcs import --force
166- rm -fr jsk_common
167186 # Run catkin_run_tests_target only when CATKIN_ENABLE_TESTING is enabled #89 (https://github.com/locusrobotics/catkin_virtualenv/pull/89)
168187 curl -s -L -O https://patch-diff.githubusercontent.com/raw/locusrobotics/catkin_virtualenv/pull/89.diff
169188 patch -p1 < 89.diff
170- rosdep install -qq -r -y --from-path . --ignore-src || echo "OK"
171- cd ..
189+
190+ - name : Setup Dependencies Workspace
191+ run : |
192+ set -x
193+ # install dependencies
194+ mkdir -p ~/ws_depend/src/3rdparty-src
195+ cd ~/ws_depend/src/3rdparty-src
196+ ROS_PACKAGE_PATH=/usr/share rosinstall_generator --rosdistro noetic --from-path $GITHUB_WORKSPACE $HOME/ws_depend/src/ros-o --deps --deps-only --exclude RPP test_catkin_virtualenv test_catkin_virtualenv_inherited --depend-type buildtool build | tee repos
197+ export PATH=/github/home/.local/bin:$PATH # for 24.04, vcs installed with pipx
198+ vcs import --shallow < repos
199+ # override to use latest development for 22.04
200+ rosinstall_generator laser_filters laser_assembler map_server --rosdistro noetic --upstream-development | vcs import --force
201+ ROS_PACKAGE_PATH=/usr/share:$HOME/ws_depend/src/ros-o rosinstall_generator --from-path $HOME/ws_depend/src/3rdparty-src --rosdistro noetic --deps --deps-only --exclude RPP test_catkin_virtualenv test_catkin_virtualenv_inherited | vcs import --shallow
202+ cd ~/ws_depend
203+ rosdep install -qq -r -y --from-path src --ignore-src || echo "OK"
172204 catkin_make_isolated --cmake-args -DCATKIN_ENABLE_TESTING=OFF
173205
174206 - name : Setup Workspace
@@ -215,6 +247,11 @@ jobs:
215247 set -x
216248 apt update && apt install -qq -y ca-certificates
217249 echo "deb [trusted=yes] ${{ matrix.ROS_REPOSITORY_URL }}/ ./" | tee /etc/apt/sources.list.d/ros-o-builder.list
250+ ##
251+ # https://github.com/v4hn/ros-deb-builder-action/blob/b7c0ed93fde3a86b5b1027bf8f7145cad6067c90/prepare.sh#L27-L28
252+ # 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
254+ ##
218255 apt update
219256 apt install -qq -y python3-rosdep2
220257 echo "yaml ${{ matrix.ROS_REPOSITORY_URL }}/local.yaml debian" | tee /etc/ros/rosdep/sources.list.d/1-ros-o-builder.list
0 commit comments