From 6075e0a14f9f8d01f5091911e6b279497b4cf8df Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Mon, 23 Mar 2026 17:40:46 -0700 Subject: [PATCH 1/4] Use action-ros-ci to build from source This adds a GitHub workflow for manually building a package and its dependencies from source in a colcon workspace using action-ros-ci. The job is intended to be triggered manually via workflow_dispatch and with input parameters to specify which packages should be tested and which packages and versions to build. Two repos files are provided for convenience for building only the dependencies of a package or the entire gazebo collection. Signed-off-by: Steve Peters --- .github/ci/collection.yaml | 62 +++++++++++++++++++ .github/ci/packages_up_to_sdformat.yaml | 22 +++++++ .../ci_dependencies_from_source.yaml | 53 ++++++++++++++++ 3 files changed, 137 insertions(+) create mode 100644 .github/ci/collection.yaml create mode 100644 .github/ci/packages_up_to_sdformat.yaml create mode 100644 .github/workflows/ci_dependencies_from_source.yaml diff --git a/.github/ci/collection.yaml b/.github/ci/collection.yaml new file mode 100644 index 000000000..bdcd46cf9 --- /dev/null +++ b/.github/ci/collection.yaml @@ -0,0 +1,62 @@ +--- +repositories: + gz-cmake: + type: git + url: https://github.com/gazebosim/gz-cmake + version: main + gz-common: + type: git + url: https://github.com/gazebosim/gz-common + version: main + gz-fuel-tools: + type: git + url: https://github.com/gazebosim/gz-fuel-tools + version: main + gz-sim: + type: git + url: https://github.com/gazebosim/gz-sim + version: main + gz-gui: + type: git + url: https://github.com/gazebosim/gz-gui + version: main + gz-math: + type: git + url: https://github.com/gazebosim/gz-math + version: main + gz-msgs: + type: git + url: https://github.com/gazebosim/gz-msgs + version: main + gz-physics: + type: git + url: https://github.com/gazebosim/gz-physics + version: main + gz-plugin: + type: git + url: https://github.com/gazebosim/gz-plugin + version: main + gz-rendering: + type: git + url: https://github.com/gazebosim/gz-rendering + version: main + gz-sensors: + type: git + url: https://github.com/gazebosim/gz-sensors + version: main + gz-tools: + type: git + url: https://github.com/gazebosim/gz-tools + version: main + gz-transport: + type: git + url: https://github.com/gazebosim/gz-transport + version: main + gz-utils: + type: git + url: https://github.com/gazebosim/gz-utils + version: main + sdformat: + type: git + url: https://github.com/gazebosim/sdformat + version: main diff --git a/.github/ci/packages_up_to_sdformat.yaml b/.github/ci/packages_up_to_sdformat.yaml new file mode 100644 index 000000000..65e825c8b --- /dev/null +++ b/.github/ci/packages_up_to_sdformat.yaml @@ -0,0 +1,22 @@ +--- +repositories: + gz-cmake: + type: git + url: https://github.com/gazebosim/gz-cmake + version: main + gz-math: + type: git + url: https://github.com/gazebosim/gz-math + version: main + gz-tools: + type: git + url: https://github.com/gazebosim/gz-tools + version: main + gz-utils: + type: git + url: https://github.com/gazebosim/gz-utils + version: main + sdformat: + type: git + url: https://github.com/gazebosim/sdformat + version: main diff --git a/.github/workflows/ci_dependencies_from_source.yaml b/.github/workflows/ci_dependencies_from_source.yaml new file mode 100644 index 000000000..fc4403afb --- /dev/null +++ b/.github/workflows/ci_dependencies_from_source.yaml @@ -0,0 +1,53 @@ +name: Ubuntu CI from source +run-name: Testing ${{ inputs.packages-to-test }} | vcs ${{ inputs.vcs-repo-file-base }} ${{ inputs.vcs-repo-file }} + +on: + workflow_dispatch: + inputs: + packages-to-test: + description: Names of packages to test (e.g. 'gz-math sdformat'). + required: true + type: string + default: sdformat + vcs-repo-file-base: + description: Choose whether vcs-repo-file represents a relative path in the github workspace or a URL. + required: true + default: relative + type: choice + options: + - relative + - url + vcs-repo-file: + description: Relative path or URL to vcs repo file to import into colcon workspace + required: true + type: string + default: ".github/ci/packages_up_to_sdformat.yaml" + +jobs: + noble-ci: + runs-on: ubuntu-latest + name: Ubuntu Resolute CI (from source) + container: + image: rostooling/setup-ros-docker:ubuntu-resolute-latest + steps: + - name: Checkout + uses: actions/checkout@v7 + - name: Compile and test + uses: ros-tooling/action-ros-ci@v0.4 + with: + package-name: ${{ inputs.packages-to-test }} + target-ros2-distro: lyrical + vcs-repo-file-url: > + ${{ case( + inputs.vcs-repo-file-base == 'relative', format('{0}/{1}', github.workspace, inputs.vcs-repo-file), + inputs.vcs-repo-file + ) }} + colcon-defaults: | + { + "build": { + "merge-install": true + }, + "test": { + "merge-install": true + } + } From 158833d641ff37817ffc6bf17376b662737ffba8 Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Tue, 23 Jun 2026 17:05:28 -0700 Subject: [PATCH 2/4] run on push to this branch, hard-coded inputs Signed-off-by: Steve Peters --- .github/workflows/ci_dependencies_from_source.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci_dependencies_from_source.yaml b/.github/workflows/ci_dependencies_from_source.yaml index fc4403afb..fa75242de 100644 --- a/.github/workflows/ci_dependencies_from_source.yaml +++ b/.github/workflows/ci_dependencies_from_source.yaml @@ -2,6 +2,9 @@ name: Ubuntu CI from source run-name: Testing ${{ inputs.packages-to-test }} | vcs ${{ inputs.vcs-repo-file-base }} ${{ inputs.vcs-repo-file }} on: + push: + branches: + - 'scpeters/action_ros_ci_rotary' workflow_dispatch: inputs: packages-to-test: @@ -35,13 +38,9 @@ jobs: - name: Compile and test uses: ros-tooling/action-ros-ci@v0.4 with: - package-name: ${{ inputs.packages-to-test }} + package-name: sdformat target-ros2-distro: lyrical - vcs-repo-file-url: > - ${{ case( - inputs.vcs-repo-file-base == 'relative', format('{0}/{1}', github.workspace, inputs.vcs-repo-file), - inputs.vcs-repo-file - ) }} + vcs-repo-file-url: ${{ github.workspace }}/.github/ci/packages_up_to_sdformat.yaml colcon-defaults: | { "build": { From 94519c42d9bb4e4c7521eea8158023cd3a69121e Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Wed, 24 Jun 2026 15:17:49 -0700 Subject: [PATCH 3/4] Test fix in gz-tools branch Signed-off-by: Steve Peters --- .github/ci/packages_up_to_sdformat.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ci/packages_up_to_sdformat.yaml b/.github/ci/packages_up_to_sdformat.yaml index 65e825c8b..5139ae36a 100644 --- a/.github/ci/packages_up_to_sdformat.yaml +++ b/.github/ci/packages_up_to_sdformat.yaml @@ -11,7 +11,7 @@ repositories: gz-tools: type: git url: https://github.com/gazebosim/gz-tools - version: main + version: scpeters/colcon-test-result gz-utils: type: git url: https://github.com/gazebosim/gz-utils From 1576cf1c3c468c334ddecd8b78aef211d4c9e322 Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Thu, 25 Jun 2026 00:39:23 -0700 Subject: [PATCH 4/4] test building gz-physics using collection.yaml Signed-off-by: Steve Peters --- .github/workflows/ci_dependencies_from_source.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci_dependencies_from_source.yaml b/.github/workflows/ci_dependencies_from_source.yaml index fa75242de..b33f82f44 100644 --- a/.github/workflows/ci_dependencies_from_source.yaml +++ b/.github/workflows/ci_dependencies_from_source.yaml @@ -38,9 +38,9 @@ jobs: - name: Compile and test uses: ros-tooling/action-ros-ci@v0.4 with: - package-name: sdformat + package-name: gz-physics target-ros2-distro: lyrical - vcs-repo-file-url: ${{ github.workspace }}/.github/ci/packages_up_to_sdformat.yaml + vcs-repo-file-url: ${{ github.workspace }}/.github/ci/collection.yaml colcon-defaults: | { "build": {