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
9 changes: 8 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ jobs:
- fortress
- harmonic
- ionic
- jetty
exclude:
# Gazebo Fortress (Sep 2021 - Sep 2026)
# Compatible ubuntu distributions: 22.04
Expand All @@ -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:
Expand Down Expand Up @@ -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'
Expand Down
34 changes: 34 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 6 additions & 1 deletion __test__/main.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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"]);
});
});
1 change: 1 addition & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ inputs:
- fortress
- harmonic
- ionic
- jetty

Multiple values can be passed using a whitespace delimited list
"fortress harmonic".
Expand Down
4 changes: 2 additions & 2 deletions dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -26395,8 +26395,8 @@ const validROSGzDistrosList = [
},
{
rosDistro: "rolling",
officialROSGzWrappers: ["harmonic"],
unofficialROSGzWrappers: [],
officialROSGzWrappers: ["jetty"],
unofficialROSGzWrappers: [""],
vendorPackagesAvailable: true,
},
];
Expand Down
4 changes: 2 additions & 2 deletions src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ const validROSGzDistrosList: {
},
{
rosDistro: "rolling",
officialROSGzWrappers: ["harmonic"],
unofficialROSGzWrappers: [],
officialROSGzWrappers: ["jetty"],
unofficialROSGzWrappers: [""],
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this empty string element required, or could this array be empty?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch ! fixed in 9dde789

vendorPackagesAvailable: true,
},
];
Expand Down
Loading