Repository: ros-tooling/cross_compile (language: python)

Issue:
Add Rolling support
## Description

Add the ability to build against ROS 2 Rolling release


Discussion / hints:

Fix patch:
diff --git a/README.md b/README.md
index b1c6b95d..106d62ff 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ This tool supports compiling a workspace for all combinations of the following:
 * Architecture: `armhf`, `aarch64`, `x86_64`
 * ROS Distro
   * ROS: `kinetic`, `melodic`
-  * ROS 2: `dashing`, `eloquent`, `foxy`
+  * ROS 2: `dashing`, `eloquent`, `foxy`, `rolling`
 * OS: `Ubuntu`, `Debian`
 
 NOTE: ROS 2 supports Debian only as a Tier 3 platform.
diff --git a/ros_cross_compile/platform.py b/ros_cross_compile/platform.py
index 122ac1f7..3ac0ca88 100644
--- a/ros_cross_compile/platform.py
+++ b/ros_cross_compile/platform.py
@@ -26,7 +26,7 @@
 }
 SUPPORTED_ARCHITECTURES = tuple(ARCHITECTURE_NAME_MAP.keys())
 
-SUPPORTED_ROS2_DISTROS = ('dashing', 'eloquent', 'foxy')
+SUPPORTED_ROS2_DISTROS = ('dashing', 'eloquent', 'foxy', 'rolling')
 SUPPORTED_ROS_DISTROS = ('kinetic', 'melodic')
 
 ROSDISTRO_OS_MAP = {
@@ -50,6 +50,10 @@
         'ubuntu': 'focal',
         'debian': 'buster',
     },
+    'rolling': {
+        'ubuntu': 'focal',
+        'debian': 'buster',
+    },
 }
 # NOTE: when changing any preceding values, update README.md Supported Targets section
 


Test patch:
diff --git a/.github/workflows/e2e_test.yml b/.github/workflows/e2e_test.yml
index f3272c10..9bf135b4 100644
--- a/.github/workflows/e2e_test.yml
+++ b/.github/workflows/e2e_test.yml
@@ -16,7 +16,7 @@ jobs:
       matrix:
         target_arch: [aarch64, armhf, x86_64]
         target_os: [ubuntu, debian]
-        rosdistro: [dashing, eloquent, foxy, melodic]
+        rosdistro: [dashing, eloquent, foxy, rolling, melodic]
     env:
       METRICS_OUT_DIR: /tmp/collected_metrics
     steps:
@@ -51,12 +51,12 @@ jobs:
         aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
         aws-region: ${{ secrets.AWS_REGION }}
     - uses: ros-tooling/action-cloudwatch-metrics@0.0.5
-      if: ${{ always() && ! github.event.repository.fork && ! github.event.pull_request.head.repo.fork && ( matrix.target_arch != 'armhf' || matrix.rosdistro != 'foxy' ) }}
+      if: ${{ always() && !github.event.repository.fork && !github.event.pull_request.head.repo.fork && ( matrix.target_arch != 'armhf' || matrix.rosdistro != 'foxy' ) && ( matrix.target_arch != 'armhf' || matrix.rosdistro != 'rolling' ) }}
       with:
         metric-data: "${{ env.METRICS_OUT_DIR }}/${{ matrix.target_arch }}_${{ matrix.target_os }}_${{ matrix.rosdistro }}_a"
         namespace: "CrossCompileMetrics"
     - uses: ros-tooling/action-cloudwatch-metrics@0.0.5
-      if: ${{ always() && ! github.event.repository.fork && ! github.event.pull_request.head.repo.fork && ( matrix.target_arch != 'armhf' || matrix.rosdistro != 'foxy' ) }}
+      if: ${{ always() && !github.event.repository.fork && !github.event.pull_request.head.repo.fork && ( matrix.target_arch != 'armhf' || matrix.rosdistro != 'foxy' ) && ( matrix.target_arch != 'armhf' || matrix.rosdistro != 'rolling' ) }}
       with:
         metric-data: "${{ env.METRICS_OUT_DIR }}/${{ matrix.target_arch }}_${{ matrix.target_os }}_${{ matrix.rosdistro }}_b"
         namespace: "CrossCompileMetrics"
diff --git a/test/run_e2e_test.sh b/test/run_e2e_test.sh
index ab7c5352..4be99b48 100755
--- a/test/run_e2e_test.sh
+++ b/test/run_e2e_test.sh
@@ -85,14 +85,11 @@ setup(){
 
   custom_setup_script=${test_sysroot_dir}/custom-setup.bash
   echo "#!/bin/bash" > "$custom_setup_script"
-  if [ "$distro" == "foxy" ]; then
-    if [ "$arch" == "armhf" ]; then
-      error "Foxy does not yet have armhf binaries available"
+  if [ "$arch" == "armhf" ]; then
+    if [ "$distro" == "foxy" ] || [ "$distro" == "rolling" ]; then
+      error "Foxy and Rolling do not have armhf binaries available"
       exit 0
     fi
-    # foxy is currently in prerelease and therefore is only available in the testing repo
-    # this must be removed once foxy is released
-    echo "echo \"deb http://packages.ros.org/ros2-testing/ubuntu focal main\" >> /etc/apt/sources.list.d/ros2-latest.list" >> "$custom_setup_script"
   fi
 }