Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 48 additions & 23 deletions .github/workflows/ros-build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Build and Test legged control

on:
push:
branches: [ ros-one-devel ]
branches: [ ros2-jazzy-devel ]
pull_request:
branches: [ ros-one-devel ]
branches: [ ros2-jazzy-devel ]

jobs:
build:
Expand All @@ -30,46 +30,71 @@ jobs:
apt-get update
apt-get install -y git ninja-build liburdfdom-dev liboctomap-dev libassimp-dev liblcm-dev checkinstall wget rsync curl

- name: ROS One installation
- name: ROS Jazzy installation
run: |
curl -sSL https://ros.packages.techfak.net/gpg.key -o /etc/apt/keyrings/ros-one-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/ros-one-keyring.gpg] https://ros.packages.techfak.net $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/ros1.list
apt-get update
apt-get install -y python3-rosdep python3-catkin-tools
rosdep init
echo "yaml https://ros.packages.techfak.net/ros-one.yaml one" | tee /etc/ros/rosdep/sources.list.d/1-ros-one.list
rosdep update
apt-get install -y ros-one-desktop
apt-get install -y ros-one-controller-interface ros-one-realtime-tools ros-one-joint-state-controller ros-one-imu-sensor-controller ros-one-gazebo-ros ros-one-gazebo-ros-control

locale
apt update
apt install -y locales
locale-gen en_US en_US.UTF-8
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale
apt install -y software-properties-common
add-apt-repository universe
apt update
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F'"' '{print $4}')
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"
dpkg -i /tmp/ros2-apt-source.deb
apt update
apt install -y ros-dev-tools
apt update
apt upgrade -y
apt install -y ros-jazzy-desktop
apt install -y ros-jazzy-ros-base
apt install -y \
ros-jazzy-controller-interface \
ros-jazzy-hardware-interface \
ros-jazzy-realtime-tools \
ros-jazzy-joint-state-broadcaster \
ros-jazzy-imu-sensor-broadcaster \
ros-jazzy-simulation-interfaces \
ros-jazzy-ros-gz-interfaces \
ros-jazzy-gz-ros2-control \
ros-jazzy-ros-gz

- name: Pinocchio from robotpkg
run: |
apt install -qqy lsb-release
mkdir -p /etc/apt/keyrings
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.asc | tee /etc/apt/keyrings/robotpkg.asc
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/robotpkg.asc] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg" | tee /etc/apt/sources.list.d/robotpkg.list
apt-get update
apt-get install -y robotpkg-coal robotpkg-pinocchio
echo "CMAKE_PREFIX_PATH=/opt/openrobots:${CMAKE_PREFIX_PATH}" >> $GITHUB_ENV
apt update
apt install -y robotpkg-pinocchio robotpkg-coal
echo "/opt/openrobots/bin" >> $GITHUB_PATH
echo "PKG_CONFIG_PATH=/opt/openrobots/lib/pkgconfig:${PKG_CONFIG_PATH}" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=/opt/openrobots/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV
echo "PYTHONPATH=/opt/openrobots/lib/python3.10/site-packages:${PYTHONPATH}" >> $GITHUB_ENV
echo "CMAKE_PREFIX_PATH=/opt/openrobots:${CMAKE_PREFIX_PATH}" >> $GITHUB_ENV

- name: Checkout dependencies
run: |
git clone -b ros-one-devel https://github.com/idra-lab/ocs2.git src/ocs2
git clone https://github.com/leggedrobotics/ocs2_robotic_assets.git src/ocs2_robotic_assets
git clone -b ros2 https://github.com/idra-lab/ocs2.git src/ocs2
git clone -b ros2 https://github.com/leggedrobotics/ocs2_robotic_assets.git src/ocs2_robotic_assets

- uses: actions/checkout@v4
with:
ref: ros-one-devel
ref: ros2-jazzy-devel
path: src/legged_control

- name: Rosdep
run: |
rosdep init || true
rosdep update
rosdep install --from-paths src --ignore-src -r -y

- name: Build Release
shell: bash
run: |
source /opt/ros/one/setup.bash
catkin init
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build legged_controllers legged_unitree_description legged_gazebo legged_unitree_hw
source /opt/ros/jazzy/setup.bash
echo "CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH"
colcon build --packages-up-to legged_controllers legged_unitree_description legged_gazebo legged_unitree_hw --cmake-args -DCMAKE_BUILD_TYPE=Release
Loading