From d85e1626c5277391dffea539b1f63d00292cb74f Mon Sep 17 00:00:00 2001 From: Emerson Knapp Date: Wed, 6 May 2026 21:38:53 -0700 Subject: [PATCH 1/2] ros-ready: add lyrical and update rolling to ubuntu resolute Signed-off-by: Emerson Knapp --- ros/ready/ubuntu/Containerfile | 2 +- ros/ready/ubuntu/docker-bake.hcl | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ros/ready/ubuntu/Containerfile b/ros/ready/ubuntu/Containerfile index eaaa453..3c0d602 100644 --- a/ros/ready/ubuntu/Containerfile +++ b/ros/ready/ubuntu/Containerfile @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1 -ARG BASE_IMAGE=ubuntu:noble-20260217 +ARG BASE_IMAGE=resolute-20260421 # hadolint ignore=DL3006 FROM ${BASE_IMAGE} AS base diff --git a/ros/ready/ubuntu/docker-bake.hcl b/ros/ready/ubuntu/docker-bake.hcl index 8d35639..4be2db5 100644 --- a/ros/ready/ubuntu/docker-bake.hcl +++ b/ros/ready/ubuntu/docker-bake.hcl @@ -12,7 +12,8 @@ variable "DISTRO" { {ros = "humble", base_image = "ubuntu:jammy-20260217"}, {ros = "jazzy", base_image = "ubuntu:noble-20260217"}, {ros = "kilted", base_image = "ubuntu:noble-20260217"}, - {ros = "rolling", base_image = "ubuntu:noble-20260217"}, + {ros = "lyrical", base_image = "ubuntu:resolute-20260421"}, + {ros = "rolling", base_image = "ubuntu:resolute-20260421"}, ] } From c2cbec0be225786fb939d2be7b56f85deb86011b Mon Sep 17 00:00:00 2001 From: Emerson Knapp Date: Wed, 6 May 2026 21:58:38 -0700 Subject: [PATCH 2/2] Fix the test copypasta Signed-off-by: Emerson Knapp --- ros/ready/ubuntu/test/controls/ros_ready.rb | 228 ++++---------------- 1 file changed, 39 insertions(+), 189 deletions(-) diff --git a/ros/ready/ubuntu/test/controls/ros_ready.rb b/ros/ready/ubuntu/test/controls/ros_ready.rb index b672772..ae418d4 100644 --- a/ros/ready/ubuntu/test/controls/ros_ready.rb +++ b/ros/ready/ubuntu/test/controls/ros_ready.rb @@ -11,206 +11,56 @@ it { should exist } end -# docker.io/polymathrobotics/ros:humble-ready-ubuntu -control 'humble-ready' do - only_if('humble-ready') do - input('test_container_image').include?('ros:humble-ready-ubuntu') - end - describe os do - its('name') { should eq 'ubuntu' } - its('release') { should eq '22.04' } - end - describe os_env('ROS_DISTRO') do - its('content') { should eq 'humble' } - end - describe file('/etc/apt/sources.list.d/ros2-latest.list') do - it { should exist } - its('content') { should match %r{jammy main} } - end - %w( - colcon - rosdep - ).each do |cmd| - describe command(cmd) do - it { should_not exist } - end - end -end +DISTROS = { + 'humble' => { release: '22.04', codename: 'jammy' }, + 'jazzy' => { release: '24.04', codename: 'noble' }, + 'kilted' => { release: '24.04', codename: 'noble' }, + 'rolling' => { release: '26.04', codename: 'resolute' }, +}.freeze -# docker.io/polymathrobotics/ros:humble-builder-ubuntu -control 'humble-builder' do - only_if('humble-builder') do - input('test_container_image').include?('ros:humble-builder-ubuntu') - end - describe os do - its('name') { should eq 'ubuntu' } - its('release') { should eq '22.04' } - end - describe os_env('ROS_DISTRO') do - its('content') { should eq 'humble' } - end - %w( - colcon - rosdep - ).each do |cmd| - describe command(cmd) do - it { should exist } +DISTROS.each do |distro, info| + # docker.io/polymathrobotics/ros:#{distro}-ready-ubuntu + control "#{distro}-ready" do + only_if("#{distro}-ready") do + input('test_container_image').include?("ros:#{distro}-ready-ubuntu") end - end - describe file('/usr/local/bin/gather-rosdeps') do - it { should exist } - end -end - -# docker.io/polymathrobotics/ros:jazzy-ready-ubuntu -control 'jazzy-ready' do - only_if('jazzy-ready') do - input('test_container_image').include?('ros:jazzy-ready-ubuntu') - end - describe os do - its('name') { should eq 'ubuntu' } - its('release') { should eq '24.04' } - end - describe os_env('ROS_DISTRO') do - its('content') { should eq 'jazzy' } - end - describe file('/etc/apt/sources.list.d/ros2-latest.list') do - it { should exist } - its('content') { should match %r{noble main} } - end - %w( - colcon - rosdep - ).each do |cmd| - describe command(cmd) do - it { should_not exist } + describe os do + its('name') { should eq 'ubuntu' } + its('release') { should eq info[:release] } end - end -end - -# docker.io/polymathrobotics/ros:jazzy-builder-ubuntu -control 'jazzy-builder' do - only_if('jazzy-builder') do - input('test_container_image').include?('ros:jazzy-builder-ubuntu') - end - describe os do - its('name') { should eq 'ubuntu' } - its('release') { should eq '24.04' } - end - describe os_env('ROS_DISTRO') do - its('content') { should eq 'jazzy' } - end - %w( - colcon - rosdep - ).each do |cmd| - describe command(cmd) do - it { should exist } + describe os_env('ROS_DISTRO') do + its('content') { should eq distro } end - end - describe file('/usr/local/bin/gather-rosdeps') do - it { should exist } - end -end - -# docker.io/polymathrobotics/ros:kilted-ready-ubuntu -control 'kilted-ready' do - only_if('kilted-ready') do - input('test_container_image').include?('ros:kilted-ready-ubuntu') - end - describe os do - its('name') { should eq 'ubuntu' } - its('release') { should eq '24.04' } - end - describe os_env('ROS_DISTRO') do - its('content') { should eq 'kilted' } - end - describe file('/etc/apt/sources.list.d/ros2-latest.list') do + describe file('/etc/apt/sources.list.d/ros2-latest.list') do it { should exist } - its('content') { should match %r{noble main} } - end - %w( - colcon - rosdep - ).each do |cmd| - describe command(cmd) do - it { should_not exist } + its('content') { should match %r{#{info[:codename]} main} } end - end -end - -# docker.io/polymathrobotics/ros:kilted-builder-ubuntu -control 'kilted-builder' do - only_if('kilted-builder') do - input('test_container_image').include?('ros:kilted-builder-ubuntu') - end - describe os do - its('name') { should eq 'ubuntu' } - its('release') { should eq '24.04' } - end - describe os_env('ROS_DISTRO') do - its('content') { should eq 'kilted' } - end - %w( - colcon - rosdep - ).each do |cmd| - describe command(cmd) do - it { should exist } + %w(colcon rosdep).each do |cmd| + describe command(cmd) do + it { should_not exist } + end end end - describe file('/usr/local/bin/gather-rosdeps') do - it { should exist } - end -end -# docker.io/polymathrobotics/ros:rolling-ready-ubuntu -control 'rolling-ready' do - only_if('rolling-ready') do - input('test_container_image').include?('ros:rolling-ready-ubuntu') - end - describe os do - its('name') { should eq 'ubuntu' } - its('release') { should eq '24.04' } - end - describe os_env('ROS_DISTRO') do - its('content') { should eq 'rolling' } - end - describe file('/etc/apt/sources.list.d/ros2-latest.list') do - it { should exist } - its('content') { should match %r{noble main} } - end - %w( - colcon - rosdep - ).each do |cmd| - describe command(cmd) do - it { should_not exist } + # docker.io/polymathrobotics/ros:#{distro}-builder-ubuntu + control "#{distro}-builder" do + only_if("#{distro}-builder") do + input('test_container_image').include?("ros:#{distro}-builder-ubuntu") end - end -end - -# docker.io/polymathrobotics/ros:rolling-builder-ubuntu -control 'rolling-builder' do - only_if('rolling-builder') do - input('test_container_image').include?('ros:rolling-builder-ubuntu') - end - describe os do - its('name') { should eq 'ubuntu' } - its('release') { should eq '24.04' } - end - describe os_env('ROS_DISTRO') do - its('content') { should eq 'rolling' } - end - %w( - colcon - rosdep - ).each do |cmd| - describe command(cmd) do + describe os do + its('name') { should eq 'ubuntu' } + its('release') { should eq info[:release] } + end + describe os_env('ROS_DISTRO') do + its('content') { should eq distro } + end + %w(colcon rosdep).each do |cmd| + describe command(cmd) do + it { should exist } + end + end + describe file('/usr/local/bin/gather-rosdeps') do it { should exist } end end - describe file('/usr/local/bin/gather-rosdeps') do - it { should exist } - end end