diff --git a/vinca/generate_gha.py b/vinca/generate_gha.py index de9e73c..8d541e1 100644 --- a/vinca/generate_gha.py +++ b/vinca/generate_gha.py @@ -238,10 +238,11 @@ def dump_for_gha(doc, f): def get_stage_name(batch): + legacy_prefix = f"ros-{config.ros_distro}-" stage_name = [] for pkg in batch: - if len(pkg.split("-")) > 2: - stage_name.append("-".join(pkg.split("-")[2:])) + if pkg.startswith(legacy_prefix): + stage_name.append(pkg[len(legacy_prefix) :]) else: stage_name.append(pkg) return " ".join(stage_name) diff --git a/vinca/test_generate_gha.py b/vinca/test_generate_gha.py new file mode 100644 index 0000000..79c8b8d --- /dev/null +++ b/vinca/test_generate_gha.py @@ -0,0 +1,34 @@ +"""Tests for the GitHub Actions pipeline generation.""" + +import pytest + +from vinca import config +from vinca.generate_gha import get_stage_name + + +@pytest.fixture(autouse=True) +def rolling_distro(): + previous = config.ros_distro + config.ros_distro = "rolling" + yield + config.ros_distro = previous + + +@pytest.mark.parametrize( + "package,expected", + [ + ("ros-rolling-rclcpp", "rclcpp"), + ("ros-rolling-ament-package", "ament-package"), + ("ros2-rclcpp", "ros2-rclcpp"), + ("ros2-ament-package", "ros2-ament-package"), + ("ros2-distro-mutex", "ros2-distro-mutex"), + ("ros-humble-rclcpp", "ros-humble-rclcpp"), + ], +) +def test_get_stage_name_strips_only_the_legacy_prefix(package, expected): + assert get_stage_name([package]) == expected + + +def test_get_stage_name_joins_a_batch(): + batch = ["ros-rolling-rclcpp", "ros2-ament-package"] + assert get_stage_name(batch) == "rclcpp ros2-ament-package"