Skip to content

fix(ci): resolve build failures from dead domain and keisan API break#38

Open
canji1983 wants to merge 1 commit into
threeal:mainfrom
canji1983:fix/ci-build-failures
Open

fix(ci): resolve build failures from dead domain and keisan API break#38
canji1983 wants to merge 1 commit into
threeal:mainfrom
canji1983:fix/ci-build-failures

Conversation

@canji1983

Copy link
Copy Markdown

Summary

Fixes all identified CI build failures in the tosshin project. The repository has been dormant since 2021-06-28, and multiple external dependencies have broken since then.

Root Causes Fixed

# Issue Fix
1 repository.ichiro-its.org DNS is dead (curl exit code 6) Removed dead setup steps entirely
2 keisan not in standard rosdep database Added keisan as a workspace source dependency via actions/checkout
3 keisan's Quaternion was converted to Quaternion<T> template (2021-08-28), breaking tosshin's non-templated usage Pinned keisan to commit 593c9dc (last pre-template version)
4 CI action defaults to ROS 2 iron but no distro was specified Explicitly set distro: iron
5 Outdated GitHub Actions versions Updated checkout, scp-action, ssh-action to current versions

Changes

.github/workflows/build-and-test.yml

  • actions/checkout@v2.3.4@v4
  • Removed 3 dead curl | bash steps for repository.ichiro-its.org
  • Added actions/checkout@v4 step to clone ichiro-its/keisan at pinned commit 593c9dc
  • Added explicit distro: iron input to ichiro-its/ros2-build-and-test-action

.github/workflows/deploy-debian.yml

  • Same keisan checkout and dead-domain removal as above
  • Added explicit ros2-distro: iron input to ros2-build-debian-action
  • appleboy/scp-action@master@v0.1.7
  • appleboy/ssh-action@master@v1.0.3

.github/workflows/deploy-documentation.yml

  • actions/checkout@v2.3.4@v4

How It Works

The ichiro-its/ros2-build-and-test-action internally runs:

rosdep install --from-paths . --ignore-src

The --ignore-src flag means packages already in the workspace (keisan + tosshin) are not looked up in rosdep — they're built from source by colcon build. This eliminates the need for the dead custom Debian/rosdep repositories.

Known Remaining Risks

  1. Deploy workflow SSH server — The deploy-debian workflow SCPs to a server via SSH secrets. If repository.ichiro-its.org is dead, the SSH server is likely also unreachable. The team should verify secrets.SSH_HOST or disable the deploy workflow.
  2. libargparse-dev — Listed in package.xml but not in standard rosdep. It IS available as an Ubuntu apt package, so rosdep should resolve it via apt fallback. If this fails, it can be added to a custom rosdep source.
  3. Future keisan updates — The keisan pin means tosshin won't get keisan bug fixes. Long-term, tosshin's code should be updated to use keisan::Quaternion<double> instead of keisan::Quaternion (see Phase 2 Option B in the analysis).

Verification

Push this PR to trigger the Build and Test workflow. Expected result:

  • ✅ keisan checked out at 593c9dc
  • ✅ rosdep resolves all deps (keisan skipped via --ignore-src)
  • colcon build compiles both keisan and tosshin
  • colcon test passes gtest and lint checks

- Remove dead repository.ichiro-its.org setup steps (DNS unreachable)
- Add keisan as a workspace source dependency, pinned to commit 593c9dc
  (last version before Quaternion was converted to a template)
- Explicitly set ROS 2 distro to iron in both build and deploy workflows
- Update actions/checkout from v2.3.4 to v4
- Update appleboy/scp-action from @master to @v0.1.7
- Update appleboy/ssh-action from @master to @v1.0.3

Fixes: keisan dependency unresolvable, Quaternion template mismatch,
ROS 2 distro drift from Foxy to Iron
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.

1 participant