@@ -205,26 +205,19 @@ jobs:
205205 run : |
206206 rm -fr ${{ matrix.ROS_DISTRO }}-${{ github.run_number }}-${{ github.run_attempt }}-${{ github.run_id }} || echo "OK"
207207
208+
208209 # ROS-O setup for v4hn https://github.com/v4hn/ros-o-builder/blob/jammy-one/README.md#install-instructions
209210 # ROS-O setup for techfak https://ros.packages.techfak.net/
210211 # note that v4hn uses ROS_DISTRO=one and techfak uses ROS_DISTRO
211212 ros-o :
212- runs-on : ubuntu-latest
213-
214213 strategy :
215214 fail-fast : false
216215 matrix :
217- include :
218- - DISTRO : ubuntu:22.04
219- ROS_ONE_VARIANT : v4hn
220- ROS_REPOSITORY_URL : " deb [trusted=yes] https://raw.githubusercontent.com/v4hn/ros-o-builder/jammy-one/repository ./"
221- ROSDEP_PACKAGE_MAPPING : " yaml https://raw.githubusercontent.com/v4hn/ros-o-builder/jammy-one/repository/local.yaml debian"
222- - DISTRO : ubuntu:24.04
223- ROS_ONE_VARIANT : techfak
224- ROS_REPOSITORY_URL : " deb [trusted=yes] https://ros.packages.techfak.net noble-testing main"
225- ROSDEP_PACKAGE_MAPPING : " yaml https://ros.packages.techfak.net/ros-one.yaml ubuntu"
216+ DEB_DISTRO : [22.04, 24.04]
217+ ARCH : [x64, arm64]
218+ ROS_ONE_VARIANT : [techfak]
226219
227- container : ${{ matrix.DISTRO }}
220+ runs-on : ${{ matrix.ARCH == 'x64' && format('ubuntu-{0}', matrix.DEB_DISTRO) || (matrix.ARCH == 'arm64' && format('ubuntu-{0}-arm', matrix.DEB_DISTRO) || format('ubuntu-{0}', matrix.DEB_DISTRO)) }}
228221
229222 env :
230223 DEBIAN_FRONTEND : noninteractive
@@ -236,40 +229,48 @@ jobs:
236229 - name : Setup ROS-O deb repository
237230 run : |
238231 set -x
239- apt update && apt install -qq -y ca-certificates git
240- echo ${{ matrix.ROS_REPOSITORY_URL }} | tee /etc/apt/sources.list.d/ros-o-builder.list
232+ sudo apt update && sudo apt install -qq -y ca-certificates git
233+ if [[ "${{ matrix.DEB_DISTRO }}" == "22.04" ]]; then export CODE_NAME="jammy"; fi
234+ if [[ "${{ matrix.DEB_DISTRO }}" == "24.04" ]]; then export CODE_NAME="noble"; fi
235+ echo "deb [trusted=yes] https://ros.packages.techfak.net $CODE_NAME-testing main" | sudo tee /etc/apt/sources.list.d/ros-o-builder.list
241236 ##
242237 # https://github.com/v4hn/ros-deb-builder-action/blob/b7c0ed93fde3a86b5b1027bf8f7145cad6067c90/prepare.sh#L27-L28
243238 # Canonical dropped the Debian ROS packages from 24.04 for political reasons. Wow.
244239 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
245240 ##
246- apt update
241+ sudo apt update
247242 if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "v4hn" ]]; then
248- apt install -qq -y python3-rosdep2
243+ sudo apt install -qq -y python3-rosdep2
249244 fi
250245 if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "techfak" ]]; then
251246 # Do not install python3-rosdep2, which is an outdated version of rosdep shipped via the Ubuntu repositories (instead of ROS)!
252- apt install -qq -y python3-rosdep
253- rosdep init
247+ sudo apt install -qq -y python3-rosdep
248+ sudo rosdep init
249+ fi
250+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "v4hn" ]]; then
251+ export ROSDEP_PACKAGE_MAPPING="yaml https://raw.githubusercontent.com/v4hn/ros-o-builder/jammy-one/repository/local.yaml debian"
252+ fi
253+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "techfak" ]]; then
254+ export ROSDEP_PACKAGE_MAPPING="yaml https://ros.packages.techfak.net/ros-one.yaml ubuntu"
254255 fi
255- echo ${{ matrix. ROSDEP_PACKAGE_MAPPING }} | tee /etc/ros/rosdep/sources.list.d/1-ros-o-builder.list
256+ echo $ROSDEP_PACKAGE_MAPPING | sudo tee /etc/ros/rosdep/sources.list.d/1-ros-o-builder.list
256257 rosdep update
257258 shell : bash
258259
259260 - name : Setup catkin-tools
260261 run : |
261262 set -x
262263 # setup catkin tools
263- apt install -qq -y python3-pip
264+ sudo apt install -qq -y python3-pip
264265 if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "v4hn" ]]; then
265266 pip3 install catkin-tools==0.9.4
266- apt install -qq -y catkin
267+ sudo apt install -qq -y catkin
267268 fi
268269 if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "techfak" ]]; then
269- apt install -qq -y ros-one-catkin python3-catkin-tools
270+ sudo apt install -qq -y ros-one-catkin python3-catkin-tools
270271 fi
271272 # setup build tools
272- apt install -qq -y cmake build-essential ros-one-rosbash
273+ sudo apt install -qq -y cmake build-essential ros-one-rosbash
273274 shell : bash
274275
275276 - name : Setup Workspace
@@ -279,10 +280,6 @@ jobs:
279280 # setup workspace
280281 mkdir -p ~/ws/src
281282 cd ~/ws/src
282- if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "techfak" ]]; then
283- # TODO: remove these lines and uncomment https://github.com/ubi-agni/ros-builder-action/blob/191fab06004ad5784c28cf2ba2b18f6d163a860d/ros-one.repos#L1089
284- git clone https://github.com/locusrobotics/catkin_virtualenv.git
285- fi
286283 ln -sf $GITHUB_WORKSPACE .
287284 rosdep install -qq -r -y --from-path . --ignore-src || echo "OK"
288285 # check all system packages are able to install, because ROS-O build deb files that needs all packages
0 commit comments