Skip to content

Add CI workflow for build and test#24

Merged
rolker merged 4 commits intojazzyfrom
feature/issue-5
Feb 26, 2026
Merged

Add CI workflow for build and test#24
rolker merged 4 commits intojazzyfrom
feature/issue-5

Conversation

@rolker
Copy link
Owner

@rolker rolker commented Feb 26, 2026

Summary

  • Adds a GitHub Actions CI workflow that builds and tests cube_bathymetry on every push/PR to jazzy
  • Clones unreleased dependencies (unh_marine_autonomy, mru_transform) and installs remaining deps via rosdep
  • Runs all 8 existing gtest suites and reports results

Details

Uses ros:jazzy-ros-core container with:

  • --packages-up-to cube_bathymetry for build (only builds needed deps)
  • --packages-select cube_bathymetry for test (only tests this package)
  • --depth 1 clones to minimize CI time
  • rosdep install -r -y to gracefully skip unresolvable transitive deps

Closes #5


Authored-By: Claude Code Agent
Model: Claude Opus 4.6

Sets up a GitHub Actions workflow that builds cube_bathymetry and runs
its gtest suites on every push/PR to jazzy. Clones unreleased deps
(unh_marine_autonomy, mru_transform) and installs remaining deps via
rosdep.

Closes #5

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings February 26, 2026 21:07
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds a GitHub Actions CI workflow to automate building and testing of the cube_bathymetry package. The workflow triggers on pushes and pull requests to the jazzy branch, using a ROS Jazzy Docker container to ensure a consistent build environment. The implementation follows standard ROS 2 CI patterns and fulfills the requirements outlined in issue #5.

Changes:

  • New CI workflow that builds cube_bathymetry with all dependencies and runs the complete test suite
  • Automated cloning of unreleased dependencies (unh_marine_autonomy, mru_transform) from jazzy branches
  • Comprehensive test execution with console output and verbose result reporting
Comments suppressed due to low confidence (1)

.github/workflows/ci.yml:39

  • Consider pinning the git clone operations to specific commit SHAs or tags instead of using the jazzy branch. Using branch names means the CI could potentially pull in breaking changes from upstream dependencies, making builds non-reproducible. This could cause unexpected CI failures that are difficult to debug and don't reflect issues with the current PR.
          git clone --depth 1 -b jazzy https://github.com/rolker/unh_marine_autonomy.git ../ws/src/unh_marine_autonomy
          git clone --depth 1 -b jazzy https://github.com/rolker/mru_transform.git ../ws/src/mru_transform

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

rolker and others added 2 commits February 26, 2026 16:11
mru_transform depends on geodesy (from geographic_info), which is not
in the rosdep index. Clone it alongside the other unreleased deps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Apply ament_uncrustify formatting to all source files and fix cpplint
issues: header guards, include paths, include ordering, explicit
constructors, comment spacing, line length, C++ casts, namespace
closing comments, and missing includes. Add CPPLINT.cfg to suppress
indentation_namespace (conflicts with uncrustify) and include_subdir
(for third-party GDAL headers). Add COLCON_IGNORE to original_cube
reference code.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings February 26, 2026 22:28
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 37 out of 38 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (6)

cube_bathymetry/test/test_geo_grid.cpp:123

  • Inconsistent spacing in range-based for loop. The formatting uses for (const auto & v : vals) with single space after the colon. For consistency with the rest of the codebase, use double spacing around the colon: for (const auto & v : vals).
    cube_bathymetry/test/test_error_model.cpp:113
  • Inconsistent spacing in range-based for loop. The formatting uses for (const auto & s : soundings) with single space after the colon. For consistency with the established pattern in the codebase, use double spacing around the colon: for (const auto & s : soundings).
  for (const auto & s  : soundings) {

cube_bathymetry/test/test_grid.cpp:77

  • Inconsistent spacing in range-based for loop. The formatting uses for (const auto & v : vals) with double space before the colon, while most other range-based for loops in the codebase use single spacing like for (const auto & s : soundings) with double spaces around the colon. For consistency, this should match the pattern used throughout the rest of the code (double space on both sides of colon).
    cube_bathymetry/test/test_grid.cpp:117
  • Inconsistent spacing in range-based for loop. The formatting uses for (const auto & v : vals) with single space after colon, while most other range-based for loops use double spacing around the colon like for (const auto & s : soundings). For consistency, this should match the pattern used throughout the rest of the code.
    cube_bathymetry/test/test_geo_map_sheet.cpp:106
  • Inconsistent spacing in range-based for loops. Lines 103 and 106 use for (const auto & g : ms.grids()) (double space around colon) which is correct and matches most of the codebase. However, line 106's lambda uses [](const auto & v){return without space before the opening brace. For consistency with the rest of the codebase, there should be a space before the brace: [](const auto & v) {return.
    cube_bathymetry/test/test_geo_grid.cpp:102
  • Inconsistent spacing in range-based for loop. The formatting uses for (const auto & v : vals) with single space after the colon, while most other range-based for loops in the codebase use double spacing around the colon like for (const auto & s : soundings). For consistency, this should match the established pattern.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Add missing copyright headers to Python launch files, fix flake8
style issues (line length, quotes, spacing), and fix CMakeLists.txt
indentation to use consistent 2-space indent.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@rolker rolker merged commit f046ba9 into jazzy Feb 26, 2026
1 check passed
@rolker rolker deleted the feature/issue-5 branch February 26, 2026 22:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI workflow for cube_bathymetry

2 participants