Skip to content
Merged
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion ros/ready/ubuntu/Containerfile
Original file line number Diff line number Diff line change
@@ -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

Expand Down
3 changes: 2 additions & 1 deletion ros/ready/ubuntu/docker-bake.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -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"},
]
}

Expand Down
228 changes: 39 additions & 189 deletions ros/ready/ubuntu/test/controls/ros_ready.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading