Conversation
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>
There was a problem hiding this comment.
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.
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>
There was a problem hiding this comment.
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 likefor (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 likefor (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){returnwithout 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 likefor (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>
Summary
cube_bathymetryon every push/PR tojazzyunh_marine_autonomy,mru_transform) and installs remaining deps viarosdepDetails
Uses
ros:jazzy-ros-corecontainer with:--packages-up-to cube_bathymetryfor build (only builds needed deps)--packages-select cube_bathymetryfor test (only tests this package)--depth 1clones to minimize CI timerosdep install -r -yto gracefully skip unresolvable transitive depsCloses #5
Authored-By:
Claude Code AgentModel:
Claude Opus 4.6