Add GitHub Actions CI and a devcontainer for the ROS 2 branches - #435
Open
ikhann wants to merge 1 commit into
Open
Add GitHub Actions CI and a devcontainer for the ROS 2 branches#435ikhann wants to merge 1 commit into
ikhann wants to merge 1 commit into
Conversation
Revives the CI effort from locusrobotics#346, which was approved but stalled on a Ceres installation failure in 2023. Building inside the ros:<distro> container images avoids that class of problem entirely: the matching Ubuntu base and ROS apt sources come with the image, and rosdep resolves libceres-dev without additional setup. The workflow builds and tests every package except fuse_viz (blocked on Qt6 support, see locusrobotics#421) and fuse_doc (rosdoc2 configuration only). A weekly scheduled run catches breakage caused by upstream changes (new Boost, Ceres, or rclcpp releases) even when the repository is quiet - the failure modes of locusrobotics#396 and locusrobotics#423/locusrobotics#424/locusrobotics#425. A second job runs the google-benchmark suites in Release mode and uploads the results as an artifact. As a side effect this fixes the CodeQL "Analyze (actions)" check that currently fails on every pull request: the actions language analysis errors out with "CodeQL could not process any code written in GitHub Actions" because these branches contain no workflow files to scan. The devcontainer provides the same ros:rolling environment for local development, with rosdep dependency installation on create.
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Revives #346 (approved in Nov 2023, stalled on a Ceres installation failure) with a modernized workflow:
colcon testfor all packages exceptfuse_viz(blocked on Qt6,Support Qt6 #421) and
fuse_doc(rosdoc2 config only), inside theros:rollingcontainer image. Building in thedistro container sidesteps the environment problem that stalled Add ROS2 CI #346: the matching Ubuntu base and ROS
apt sources ship with the image, and rosdep resolves
libceres-devcleanly.(fuse_constraints ×2, fuse_graphs, fuse_models), uploading JSON results as an artifact — so performance
claims in future PRs have a per-commit baseline.
(Boost 1.86/1.90: fuse_core: Don't fail with boost >= 1.86 #423/Work-around for a bug in Boost 1.90 any_range included in Ubuntu Resolute #424/Fix edge condition on Boost fix versions #425; the rclcpp drift that got fuse dropped from a Rolling sync: Regression on ROS 2 Buildfarm for Rolling #396).
A cron build surfaces that the week it happens instead of at the next release.
ros:rollingenvironment for local development, with rosdep install oncreate — currently a first-time contributor has to construct this by hand.
Side effect: fixes the perpetually failing "Analyze (actions)" check
CodeQL's
actions-language analysis currently fails on every pull request ("CodeQL could not processany code written in GitHub Actions") because these branches contain no workflow files to scan. This PR
gives it something to analyze.
Validation
The exact workflow in this PR ran green on a fork, and the same workflow with only the distro swapped
ran green on the three release branches:
rollingjazzykiltedlyricalAll steps were additionally validated locally in the
ros:<distro>containers, and the workflow filesare actionlint-clean.
Happy to follow up with per-branch PRs for
jazzy,kilted, andlyricalso cherry-picks getvalidated too — the commits are ready and are what produced the last three rows above.