diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2356960..96a6919 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -66,6 +66,7 @@ jobs: - fortress - harmonic - ionic + - jetty exclude: # Gazebo Fortress (Sep 2021 - Sep 2026) # Compatible ubuntu distributions: 22.04 @@ -76,6 +77,12 @@ jobs: # Compatible ubuntu distributions: 24.04 - ubuntu_distribution: ubuntu-22.04 gazebo_distribution: ionic + + # Gazebo Jetty (Sep 2024 - Sep 2026) + # Compatible ubuntu distributions: 24.04 + - ubuntu_distribution: ubuntu-22.04 + gazebo_distribution: jetty + steps: - uses: actions/checkout@v5 with: @@ -186,7 +193,7 @@ jobs: - name: 'Check Gazebo installation on Ubuntu runner' uses: ./ with: - required-gazebo-distributions: 'ionic' + required-gazebo-distributions: 'jetty' use-gazebo-nightly: 'true' - name: 'Test Gazebo installation' run: 'gz sim --versions' diff --git a/README.md b/README.md index c4d8f92..9e4e978 100644 --- a/README.md +++ b/README.md @@ -339,6 +339,40 @@ This example shows the installation of ROS 2 Kilted and Gazebo Ionic. Kilted use gz sim --version | grep -E 'version 9\.[0-9]+\.[0-9]+' ``` +- *Installing ROS 2 Rolling with Gazebo Jetty* + +This example shows the installation of ROS 2 Rolling and Gazebo Jetty. Rolling uses vendor packages like Jazzy and Kilted, so Gazebo libraries will be installed as ROS packages. + +```yaml + jobs: + test_gazebo: + env: + ROS_DISTROS: 'rolling' + runs-on: ubuntu-latest + container: + image: ubuntu:noble + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4.0.3 + with: + node-version: '20.x' + - name: 'Install ROS 2 Rolling' + uses: ros-tooling/setup-ros@v0.7 + with: + required-ros-distributions: ${{ env.ROS_DISTROS }} + - name: 'Install Gazebo with ros_gz' + uses: gazebo-tooling/setup-gazebo@v0.3.0 + with: + required-gazebo-distributions: 'jetty' + install-ros-gz: ${{ env.ROS_DISTROS }} + - name: Test Rolling ros_gz installation + run: | + source /opt/ros/rolling/setup.bash + ! [ $(apt list --installed gz-jetty) ] + ros2 pkg list | grep ros_gz + gz sim --version | grep 'version 10.[0-9*].[0-9*]' +``` + ### macOS #### Setting up worker to install Gazebo on macOS diff --git a/__test__/main.test.ts b/__test__/main.test.ts index 445ddb2..729e3ac 100644 --- a/__test__/main.test.ts +++ b/__test__/main.test.ts @@ -83,9 +83,14 @@ describe("validate Gazebo distribution test", () => { it("test valid distro", async () => { await expect(utils.validateDistro(["fortress"])).resolves.not.toThrow(); await expect(utils.validateDistro(["harmonic"])).resolves.not.toThrow(); + await expect(utils.validateDistro(["ionic"])).resolves.not.toThrow(); + await expect(utils.validateDistro(["jetty"])).resolves.not.toThrow(); await expect( utils.validateDistro(["fortress", "harmonic"]), ).resolves.not.toThrow(); + await expect( + utils.validateDistro(["ionic", "jetty"]), + ).resolves.not.toThrow(); }); it("test invalid distro", async () => { await expect(utils.validateDistro(["acropolis"])).rejects.toThrow(); @@ -192,7 +197,7 @@ describe("generate APT package names for ros_gz", () => { utils.generateROSGzAptPackageNames(["kilted"], ["ionic"]), ).toEqual(["ros-kilted-ros-gz"]); await expect( - utils.generateROSGzAptPackageNames(["rolling"], ["harmonic"]), + utils.generateROSGzAptPackageNames(["rolling"], ["jetty"]), ).toEqual(["ros-rolling-ros-gz"]); }); }); diff --git a/action.yml b/action.yml index d4d831e..17a82fa 100644 --- a/action.yml +++ b/action.yml @@ -13,6 +13,7 @@ inputs: - fortress - harmonic - ionic + - jetty Multiple values can be passed using a whitespace delimited list "fortress harmonic". diff --git a/dist/index.js b/dist/index.js index 23a14d4..54a531f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -26395,8 +26395,8 @@ const validROSGzDistrosList = [ }, { rosDistro: "rolling", - officialROSGzWrappers: ["harmonic"], - unofficialROSGzWrappers: [], + officialROSGzWrappers: ["jetty"], + unofficialROSGzWrappers: [""], vendorPackagesAvailable: true, }, ]; diff --git a/src/utils.ts b/src/utils.ts index e1e9ea1..6b22177 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -36,8 +36,8 @@ const validROSGzDistrosList: { }, { rosDistro: "rolling", - officialROSGzWrappers: ["harmonic"], - unofficialROSGzWrappers: [], + officialROSGzWrappers: ["jetty"], + unofficialROSGzWrappers: [""], vendorPackagesAvailable: true, }, ];