Skip to content

Jazzy Source Build

Jazzy Source Build #55

---
name: Jazzy Source Build
# yamllint disable-line rule:truthy
on:
workflow_dispatch:
push:
branches:
- ros2
paths:
- "**.hpp"
- "**.h"
- "**.cpp"
- "**.py"
- ".github/workflows/jazzy-source-build.yml"
- "**/package.xml"
- "**/CMakeLists.txt"
- "dave.jazzy.repos"
schedule:
# Run every day to detect flakiness and broken dependencies
- cron: "03 3 * * *"
env:
ros_distro: jazzy
ref: jazzy-release
os_name: ubuntu-latest
container: ubuntu:noble
jobs:
ros-jazzy-ubuntu-noble-source-build:
name: ros-jazzy-ubuntu-noble
runs-on: ubuntu-latest
container: ubuntu:noble
env:
# this will be src/{repo-owner}/{repo-name}
path: src/${{ github.repository }}
steps:
- name: "Determine prerequisites"
id: prereq
run: |
command -v sudo >/dev/null 2>&1 || (apt update && apt install -y sudo)
DEBIAN_FRONTEND=noninteractive sudo apt update && sudo apt upgrade -y
echo "need_node=$(command -v node >/dev/null 2>&1 && echo 0 || echo 1)"
>> $GITHUB_OUTPUT
# needed for github actions, and only if a bare ubuntu image is used
- uses: actions/setup-node@v4
# if: ${{ steps.prereq.outputs.need_node == '1' && !env.ACT }}
if: ${{ steps.prereq.outputs.need_node == '1' }}
- name: Install node
# Consider switching to https://github.com/actions/setup-node when it works
# https://github.com/nektos/act/issues/973
# if: ${{ steps.prereq.outputs.need_node == '1' && env.ACT }}
if: ${{ steps.prereq.outputs.need_node == '1' }}
run: |
sudo apt install -y curl
curl -sS https://webi.sh/node | sh
echo ~/.local/opt/node/bin >> $GITHUB_PATH
# needed only if a non-ros image is used
- uses: ros-tooling/setup-ros@0.7.7
with:
use-ros2-testing: true
- name: "Install ROS-Gazebo Framework Deps"
id: install-ros-gazebo
run: |
sudo /bin/bash -c "$(
curl -fsSL https://raw.githubusercontent.com/IOES-Lab/dave/ros2/extras/ros-jazzy-gz-harmonic-install.sh
)"
- uses: actions/checkout@v4
with:
path: ${{ env.path }}
- id: package_list_action
uses: ros-controls/ros2_control_ci/.github/actions/set-package-list@master
with:
path: ${{ env.path }}
- uses: ros-tooling/action-ros-ci@0.3.14
with:
target-ros2-distro: ${{ env.ros_distro }}
# ref: ${{ env.ref }}
package-name: ${{ steps.package_list_action.outputs.package_list }}
vcs-repo-file-url: |
https://raw.githubusercontent.com/ros2/ros2/${{ env.ref }}/ros2.repos
${{ env.path }}/extras/repos/dave.${{ env.ros_distro }}.repos
colcon-mixin-repository:
https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
- uses: actions/upload-artifact@v4.3.3
with:
name: colcon-logs-${{ env.os_name }}-${{ env.ros_distro }}
path: ros_ws/log