-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added support for prerelease and nightly repos (#20)
* Added support for prerelease and nightly * Testing prerelease installation action * Updated README with prerelease and nightly instructions --------- Signed-off-by: Saurabh Kamat <[email protected]>
- Loading branch information
Showing
8 changed files
with
260 additions
and
69 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -79,3 +79,46 @@ jobs: | |
echo "Neither ign nor gz command found" | ||
exit 1 | ||
fi | ||
test_gazebo_install_ubuntu_prerelease: | ||
name: 'Check installation of Gazebo pre-release binary on Ubuntu' | ||
runs-on: ubuntu-latest | ||
container: | ||
image: ${{ matrix.docker_image }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
docker_image: | ||
- ubuntu:jammy | ||
- ubuntu:noble | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/[email protected] | ||
with: | ||
node-version: '20.x' | ||
- name: 'Check Gazebo installation on Ubuntu runner' | ||
uses: ./ | ||
with: | ||
required-gazebo-distributions: 'harmonic' | ||
use-gazebo-prerelease: 'true' | ||
- name: 'Test Gazebo installation' | ||
run: 'gz sim --versions' | ||
|
||
test_gazebo_install_ubuntu_nightly: | ||
name: 'Check installation of Gazebo nightly binary on Ubuntu' | ||
runs-on: ubuntu-latest | ||
container: | ||
# Ionic should be running on Noble but existing bug is releasing it into Jammy | ||
image: ubuntu:jammy | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/[email protected] | ||
with: | ||
node-version: '20.x' | ||
- name: 'Check Gazebo installation on Ubuntu runner' | ||
uses: ./ | ||
with: | ||
required-gazebo-distributions: 'ionic' | ||
use-gazebo-nightly: 'true' | ||
- name: 'Test Gazebo installation' | ||
run: 'gz sim --versions' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -127,3 +127,5 @@ out | |
.yarn/build-state.yml | ||
.yarn/install-state.gz | ||
.pnp.* | ||
|
||
.vscode |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,6 +8,7 @@ This action sets up a Gazebo release inside a Linux environment. | |
1. [Usage](#Usage) | ||
1. [Setting up worker and installing a compatible Gazebo and Ubuntu combination](#Setting-up-worker-and-installing-a-compatible-Gazebo-and-Ubuntu-combination) | ||
1. [Iterating on all Gazebo and Ubuntu combinations](#Iterating-on-all-gazebo-ubuntu-combinations) | ||
1. [Using pre-release and/or nightly Gazebo binaries](#Using-pre-release-and/or-nightly-Gazebo-binaries) | ||
1. [License](#License) | ||
|
||
## Overview | ||
|
@@ -47,74 +48,106 @@ See [action.yml](action.yml) | |
|
||
This workflow shows how to spawn a job to install Gazebo using the action. The action needs an input in the `required-gazebo-distributions` field and requires a Docker configuration to run seamlessly. | ||
|
||
The following code snippet shows the installation of Gazebo Garden on Ubuntu Focal. | ||
The following code snippet shows the installation of Gazebo Harmonic on Ubuntu Noble. | ||
|
||
```yaml | ||
jobs: | ||
build_docker: | ||
test_gazebo: | ||
runs-on: ubuntu-latest | ||
container: | ||
image: ubuntu:noble | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/[email protected] | ||
with: | ||
node-version: '20.x' | ||
- name: 'Setup Gazebo' | ||
uses: gazebo-tooling/setup-gazebo@<full_commit_hash> | ||
with: | ||
required-gazebo-distributions: harmonic | ||
- run: 'gz sim --versions' | ||
- name: 'Test Gazebo installation' | ||
run: 'gz sim --versions' | ||
``` | ||
### Iterating on all Gazebo and Ubuntu combinations | ||
This workflow shows how to spawn one job per Gazebo release. It iterates over all specified Gazebo and Ubuntu combinations using Docker. For example, Gazebo Garden requires Ubuntu Focal while Gazebo Harmonic requires Ubuntu Jammy. | ||
This workflow shows how to spawn one job per Gazebo release. It iterates over all specified Gazebo and Ubuntu combinations using Docker. For example, Gazebo Garden is paired with Ubuntu Focal while Gazebo Harmonic is paired with Ubuntu Jammy. | ||
```yaml | ||
jobs: | ||
test_gazebo: | ||
runs-on: ubuntu-latest | ||
container: | ||
image: ${{ matrix.docker_image }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
gazebo_distribution: | ||
- citadel | ||
- fortress | ||
- garden | ||
- harmonic | ||
include: | ||
# Gazebo Citadel (Dec 2019 - Dec 2024) | ||
- docker_image: ubuntu:focal | ||
gazebo_distribution: citadel | ||
|
||
# Gazebo Fortress (Sep 2021 - Sep 2026) | ||
- docker_image: ubuntu:focal | ||
gazebo_distribution: fortress | ||
|
||
# Gazebo Garden (Sep 2022 - Nov 2024) | ||
- docker_image: ubuntu:focal | ||
gazebo_distribution: garden | ||
|
||
# Gazebo Harmonic (Sep 2023 - Sep 2028) | ||
- docker_image: ubuntu:jammy | ||
gazebo_distribution: harmonic | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/[email protected] | ||
with: | ||
node-version: '20.x' | ||
- name: 'Check Gazebo installation on Ubuntu runner' | ||
uses: gazebo-tooling/setup-gazebo@<full_commit_hash> | ||
with: | ||
required-gazebo-distributions: ${{ matrix.gazebo_distribution }} | ||
- name: 'Test Gazebo installation' | ||
run: | | ||
if command -v ign > /dev/null; then | ||
ign gazebo --versions | ||
elif command -v gz > /dev/null; then | ||
gz sim --versions | ||
else | ||
echo "Neither ign nor gz command found" | ||
exit 1 | ||
fi | ||
``` | ||
### Using pre-release and/or nightly Gazebo binaries | ||
This workflow shows how to use binaries from [pre-release] or [nightly] Gazebo repositories instead of the stable repository by setting the `use-gazebo-prerelease` or `use-gazebo-nightly` to `true`. | ||
|
||
```yaml | ||
test_gazebo: | ||
runs-on: ubuntu-latest | ||
container: | ||
image: ${{ matrix.docker_image }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
gazebo_distribution: | ||
- citadel | ||
- fortress | ||
- garden | ||
- harmonic | ||
include: | ||
# Gazebo Citadel (Dec 2019 - Dec 2024) | ||
- docker_image: ubuntu:focal | ||
gazebo_distribution: citadel | ||
|
||
# Gazebo Fortress (Sep 2021 - Sep 2026) | ||
- docker_image: ubuntu:focal | ||
gazebo_distribution: fortress | ||
|
||
# Gazebo Garden (Sep 2022 - Nov 2024) | ||
- docker_image: ubuntu:focal | ||
gazebo_distribution: garden | ||
|
||
# Gazebo Harmonic (Sep 2023 - Sep 2028) | ||
- docker_image: ubuntu:jammy | ||
gazebo_distribution: harmonic | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/[email protected] | ||
with: | ||
node-version: '20.x' | ||
- name: 'Check Gazebo installation on Ubuntu runner' | ||
uses: gazebo-tooling/setup-gazebo@<full_commit_hash> | ||
with: | ||
required-gazebo-distributions: ${{ matrix.gazebo_distribution }} | ||
- name: 'Test Gazebo installation' | ||
run: | | ||
if command -v ign > /dev/null; then | ||
ign gazebo --versions | ||
elif command -v gz > /dev/null; then | ||
gz sim --versions | ||
else | ||
echo "Neither ign nor gz command found" | ||
exit 1 | ||
fi | ||
jobs: | ||
test_gazebo: | ||
name: 'Check installation of Gazebo nightly binary on Ubuntu' | ||
runs-on: ubuntu-latest | ||
container: | ||
image: ubuntu:noble | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/[email protected] | ||
with: | ||
node-version: '20.x' | ||
- name: 'Check Gazebo installation on Ubuntu runner' | ||
uses: gazebo-tooling/setup-gazebo@<full_commit_hash> | ||
with: | ||
required-gazebo-distributions: 'harmonic' | ||
use-gazebo-prerelease: 'true' | ||
use-gazebo-nightly: 'true' | ||
- name: 'Test Gazebo installation' | ||
run: 'gz sim --versions' | ||
``` | ||
|
||
## License | ||
|
@@ -123,4 +156,6 @@ The scripts and documentation in this project are released under the [Apache 2]( | |
|
||
[releases]: https://gazebosim.org/docs/all/releases | ||
[officially]: https://gazebosim.org/docs/harmonic/releases#supported-platforms | ||
[best-effort]: https://gazebosim.org/docs/harmonic/releases#supported-platforms | ||
[best-effort]: https://gazebosim.org/docs/harmonic/releases#supported-platforms | ||
[pre-release]: https://packages.osrfoundation.org/gazebo/ubuntu-prerelease/ | ||
[nightly]: https://packages.osrfoundation.org/gazebo/ubuntu-nightly/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,31 @@ | ||
name: 'Setup Gazebo release' | ||
description: | | ||
Install a Gazebo release on a Linux system | ||
required-gazebo-distributions: | ||
description: | | ||
List of Gazebo distributions to be installed. | ||
inputs: | ||
required-gazebo-distributions: | ||
description: | | ||
List of Gazebo distributions to be installed. | ||
Allowed Gazebo distributions | ||
- citadel | ||
- fortress | ||
- garden | ||
- harmonic | ||
Allowed Gazebo distributions | ||
- citadel | ||
- fortress | ||
- garden | ||
- harmonic | ||
Multiple values can be passed using a whitespace delimited list | ||
"fortress garden". | ||
Multiple values can be passed using a whitespace delimited list | ||
"fortress garden". | ||
required: false | ||
default: '' | ||
use-gazebo-prerelease: | ||
description: | | ||
Use pre-release binaries from OSRF repository | ||
required: false | ||
default: 'false' | ||
use-gazebo-nightly: | ||
description: | | ||
Use nightly binaries from OSRF repository | ||
required: false | ||
default: '' | ||
default: 'false' | ||
runs: | ||
using: node20 | ||
main: dist/index.js |
Oops, something went wrong.