Skip to content

Commit 33d8b64

Browse files
committed
Added documentation for usage of setup-gazebo
Signed-off-by: Saurabh Kamat <[email protected]>
1 parent eeb8c85 commit 33d8b64

File tree

5 files changed

+452
-0
lines changed

5 files changed

+452
-0
lines changed

index.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,23 @@ pages:
2828
title: ROS 2 Gazebo Vendor Packages
2929
file: ros2_gz_vendor_pkgs.md
3030
description: Using ROS 2 Gazebo Vendor packages
31+
- name: setup_gazebo_in_ci
32+
title: Continuous Integration For Gazebo Packages
33+
file: setup_gazebo_in_ci.md
34+
description: Instruction on using setup-gazebo
35+
children:
36+
- name: setup_gazebo_in_ci_ubuntu
37+
title: Ubuntu Runners
38+
file: setup_gazebo_in_ci_ubuntu.md
39+
description: Instruction on using setup-gazebo with Ubuntu
40+
- name: setup_gazebo_in_ci_macos
41+
title: macOS Runners
42+
file: setup_gazebo_in_ci_macos.md
43+
description: Instruction on using setup-gazebo with mscOS
44+
- name: setup_gazebo_in_ci_windows
45+
title: Windows Runners
46+
file: setup_gazebo_in_ci_windows.md
47+
description: Instruction on using setup-gazebo with Windows
3148
- name: gazebo_classic_migration
3249
title: Gazebo Classic Migration
3350
file: gazebo_classic_migration.md

setup_gazebo_in_ci.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Setting up Gazebo in a Continuous Integration (CI) Pipeline
2+
3+
Setting up a Gazebo environment in a Continuous Integration (CI) pipeline can often be a complex and time-consuming task.
4+
It typically involves installing various dependencies, managing repository keys, and ensuring platform compatibility with the Gazebo distribution.
5+
If done incorrectly, this can lead to unpredictable behaviors in CI due inconsistencies across environments.
6+
This section provides information on setting up a Gazebo in a continuous integration pipeline using the `setup-gazebo` GitHub Action to automate the entire process of configuring a Gazebo environment in a CI by taking care of everything, from handling dependencies to installing the desired Gazebo distribution.
7+
8+
This action can also be used to install Gazebo alongside ROS 2 along with ROS-Gazebo bridge (`ros_gz`). It handles the installation of the correct version of Gazebo and `ros_gz` from all of all the recommended and supported combinations, along with possible combinations through ROS official binaries as ROS Gazebo vendor packages.
9+
10+
The `setup-gazebo` GitHub Action can be found on the [Marketplace](https://github.com/marketplace/actions/setup-gazebo-environment) with its source code hosted at [github.com/gazebo-tooling/setup-gazebo](https://github.com/gazebo-tooling/setup-gazebo). Also check this [community post](https://community.gazebosim.org/t/introducing-the-setup-gazebo-github-action/3132) for more details.
11+
12+
## Supported Gazebo Releases
13+
14+
The action currently supports all the non-EOL Gazebo releases. See [releases](https://gazebosim.org/docs/all/releases/) for more information.
15+
16+
* Citadel
17+
* Fortress
18+
* Garden
19+
* Harmonic
20+
* Ionic
21+
22+
## Supported Platforms
23+
24+
The `setup-gazebo` GitHub Action works on three platforms,
25+
26+
* [Ubuntu](setup_gazebo_in_ci_ubuntu)
27+
* [macOS](setup_gazebo_in_ci_macos)
28+
* [Windows](setup_gazebo_in_ci_windows)

setup_gazebo_in_ci_macos.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Using `setup-gazebo` with macOS Runners
2+
3+
This section details the usage of `setup-gazebo` GitHub Action on macOS runners. The action can be directly run using GitHub hosted macOS runners, a full list of available runners can be found [here](https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories).
4+
5+
## Overview
6+
7+
The `setup-gazebo` GitHub Action on macOS runners takes in the following parameters as input:
8+
9+
* `required-gazebo-distributions`: A **required** parameter that specifies the Gazebo distribution to be installed. The allowed keywords are,
10+
* `citadel`
11+
* `fortress`
12+
* `garden`
13+
* `harmonic`
14+
* `ionic`
15+
16+
## Installing Gazebo on a macOS runner
17+
18+
This workflow shows how to install Gazebo Ionic on a macOS worker using the Homebrew package manager which is installed by the action. To run, this action needs an input for `required-gazebo-distributions` parameter.
19+
20+
```yaml
21+
jobs:
22+
test_gazebo:
23+
runs-on: macos-13
24+
steps:
25+
- uses: actions/checkout@v4
26+
- uses: actions/[email protected]
27+
with:
28+
node-version: '20.x'
29+
- name: 'Check Gazebo installation on MacOS runner'
30+
uses: gazebo-tooling/[email protected]
31+
with:
32+
required-gazebo-distributions: 'ionic'
33+
- name: 'Test Gazebo installation'
34+
run: 'gz sim --versions'
35+
```

0 commit comments

Comments
 (0)