96
96
TEST_PKGS : ${{ matrix.TEST_PKGS }}
97
97
EXTRA_DEB : ${{ matrix.EXTRA_DEB }}
98
98
99
- # ROS-O setup https://github.com/v4hn/ros-o-builder/blob/jammy-one/README.md#install-instructions
99
+ # ROS-O setup for v4hn https://github.com/v4hn/ros-o-builder/blob/jammy-one/README.md#install-instructions
100
+ # ROS-O setup for techfak https://ros.packages.techfak.net/
101
+ # note that v4hn uses ROS_DISTRO=one and techfak uses ROS_DISTRO
100
102
ros-o :
101
103
runs-on : ubuntu-latest
102
104
@@ -105,7 +107,13 @@ jobs:
105
107
matrix :
106
108
include :
107
109
- DISTRO : ubuntu:22.04
108
- ROS_REPOSITORY_URL : https://raw.githubusercontent.com/v4hn/ros-o-builder/jammy-one/repository
110
+ ROS_ONE_VARIANT : techfak
111
+ ROS_REPOSITORY_URL : " deb [trusted=yes] https://ros.packages.techfak.net jammy-testing main"
112
+ ROSDEP_PACKAGE_MAPPING : " yaml https://ros.packages.techfak.net/ros-one.yaml ubuntu"
113
+ - DISTRO : ubuntu:24.04
114
+ ROS_ONE_VARIANT : techfak
115
+ ROS_REPOSITORY_URL : " deb [trusted=yes] https://ros.packages.techfak.net noble-testing main"
116
+ ROSDEP_PACKAGE_MAPPING : " yaml https://ros.packages.techfak.net/ros-one.yaml ubuntu"
109
117
110
118
container : ${{ matrix.DISTRO }}
111
119
@@ -119,21 +127,44 @@ jobs:
119
127
- name : Setup ROS-O deb repository
120
128
run : |
121
129
set -x
122
- apt update && apt install -qq -y ca-certificates
123
- echo "deb [trusted=yes] ${{ matrix.ROS_REPOSITORY_URL }}/ ./" | tee /etc/apt/sources.list.d/ros-o-builder.list
130
+ apt update && apt install -qq -y ca-certificates git
131
+ echo ${{ matrix.ROS_REPOSITORY_URL }} | tee /etc/apt/sources.list.d/ros-o-builder.list
132
+ ##
133
+ # https://github.com/v4hn/ros-deb-builder-action/blob/b7c0ed93fde3a86b5b1027bf8f7145cad6067c90/prepare.sh#L27-L28
134
+ # Canonical dropped the Debian ROS packages from 24.04 for political reasons. Wow.
135
+ 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
136
+ ##
124
137
apt update
125
- apt install -qq -y python3-rosdep2
126
- echo "yaml ${{ matrix.ROS_REPOSITORY_URL }}/local.yaml debian" | tee /etc/ros/rosdep/sources.list.d/1-ros-o-builder.list
138
+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "v4hn" ]]; then
139
+ apt install -qq -y python3-rosdep2
140
+ fi
141
+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "techfak" ]]; then
142
+ # Do not install python3-rosdep2, which is an outdated version of rosdep shipped via the Ubuntu repositories (instead of ROS)!
143
+ apt install -qq -y python3-rosdep
144
+ rosdep init
145
+ fi
146
+ echo ${{ matrix.ROSDEP_PACKAGE_MAPPING }} | tee /etc/ros/rosdep/sources.list.d/1-ros-o-builder.list
147
+ if [[ "${{ matrix.DISTRO }}" == "ubuntu:24.04" ]]; then
148
+ echo "yaml file://$GITHUB_WORKSPACE/.github/workflows/rosdep-24.04.yaml ubuntu" | tee /etc/ros/rosdep/sources.list.d/00-custom-rosdep.list
149
+ fi
127
150
rosdep update
151
+ shell : bash
128
152
129
153
- name : Setup catkin-tools
130
154
run : |
131
155
set -x
132
156
# setup catkin tools
133
157
apt install -qq -y python3-pip
134
- pip3 install catkin-tools
158
+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "v4hn" ]]; then
159
+ pip3 install catkin-tools==0.9.4
160
+ apt install -qq -y catkin
161
+ fi
162
+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "techfak" ]]; then
163
+ apt install -qq -y ros-one-catkin python3-catkin-tools
164
+ fi
135
165
# setup build tools
136
- apt install -qq -y cmake build-essential catkin ros-one-rosbash
166
+ apt install -qq -y cmake build-essential ros-one-rosbash
167
+ shell : bash
137
168
138
169
- name : Setup Workspace
139
170
run : |
@@ -142,8 +173,17 @@ jobs:
142
173
# setup workspace
143
174
mkdir -p ~/ws/src
144
175
cd ~/ws/src
176
+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "techfak" ]]; then
177
+ # TODO: remove these lines and uncomment https://github.com/ubi-agni/ros-builder-action/blob/191fab06004ad5784c28cf2ba2b18f6d163a860d/ros-one.repos#L1089
178
+ git clone https://github.com/locusrobotics/catkin_virtualenv.git
179
+ fi
145
180
ln -sf $GITHUB_WORKSPACE .
146
181
rosdep install -qq -r -y --from-path . --ignore-src || echo "OK"
182
+ # check all system packages are able to install, because ROS-O build deb files that needs all packages
183
+ 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
184
+ # catkin_tools is not available on v4hn/jammy
185
+ if [[ "${{ matrix.ROS_ONE_VARIANT }}" == "v4hn" ]]; then sed -i '/python3-catkin-tools/s/^/#/' rosdep-install.sh; fi
186
+ sed 's/apt-get install/apt-get -y install/;/install ros-one/s/^/#/;/pip3 install/s/^/#/' rosdep-install.sh | bash -xe
147
187
shell : bash
148
188
149
189
- name : Compile Packages
@@ -153,3 +193,28 @@ jobs:
153
193
cd ~/ws/
154
194
catkin build --no-status -sv ${{ matrix.CATKIN_OPTIONS }} --cmake-args -DCATKIN_ENABLE_TESTING=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ${{ matrix.CMAKE_OPTIONS }}
155
195
shell : bash
196
+
197
+ - name : Test Packages
198
+ run : |
199
+ source /opt/ros/one/setup.bash
200
+ set -x
201
+ cd ~/ws/
202
+ rosdep install -qq -r -y --from-path . --ignore-src || echo "OK"
203
+ catkin build --force-cmake --no-status -sv ${{ matrix.CATKIN_OPTIONS }} --cmake-args -DCATKIN_ENABLE_TESTING=ON -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ${{ matrix.CMAKE_OPTIONS }}
204
+ catkin test --no-status -sv ${{ matrix.CATKIN_OPTIONS }} --cmake-args -DCATKIN_ENABLE_TESTING=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ${{ matrix.CMAKE_OPTIONS }}
205
+ catkin_test_results --verbose --all
206
+ shell : bash
207
+
208
+ - name : Test spoteus, see https://github.com/jsk-ros-pkg/jsk_model_tools/pull/260
209
+ run : |
210
+ source /opt/ros/one/setup.bash
211
+ set -x
212
+ cd ~/ws/src
213
+ apt install -qq -y git curl ros-one-xacro
214
+ git clone https://github.com/k-okada/spot_ros-arm -b arm
215
+ curl -sLO https://raw.githubusercontent.com/k-okada/jsk_robot/refs/heads/spot_arm/jsk_spot_robot/spoteus/spot.yaml
216
+ catkin build spot_description --no-status -sv ${{ matrix.CATKIN_OPTIONS }} --cmake-args -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ${{ matrix.CMAKE_OPTIONS }}
217
+ source ~/ws/devel/setup.bash
218
+ rosrun xacro xacro $(rospack find spot_description)/urdf/spot.urdf.xacro -o /tmp/spot.urdf
219
+ rosrun euscollada collada2eus /tmp/spot.urdf ./spot.yaml /tmp/spot.l
220
+ shell : bash
0 commit comments