Skip to content

ci: multiarch (amd64+arm64) libfastrtps.so.2.1.4 build for Foxy 2.1.4#3

Closed
amitsingh21 wants to merge 3 commits into
rapyuta/2.1.4-foxy-basefrom
rapyuta/ci-multiarch-build
Closed

ci: multiarch (amd64+arm64) libfastrtps.so.2.1.4 build for Foxy 2.1.4#3
amitsingh21 wants to merge 3 commits into
rapyuta/2.1.4-foxy-basefrom
rapyuta/ci-multiarch-build

Conversation

@amitsingh21

Copy link
Copy Markdown

What

GitHub Actions workflow that builds libfastrtps.so.2.1.4 for amd64 (edge/server) and arm64 (Jetson bots) against ROS 2 Foxy / Ubuntu 20.04, inside osrf/ros:foxy-desktop, arm64 via QEMU.

  • Output: libfastrtps.so.2.1.4 (SONAME libfastrtps.so.2) per-arch, uploaded as artifacts (libfastrtps-{amd64,arm64}-foxy-2.1.4).
  • Triggers on push/PR to rapyuta/** + manual dispatch.
  • Build recipe matches the validated local build: cmake -DTHIRDPARTY=ON -DTHIRDPARTY_UPDATE=OFF -DCOMPILE_EXAMPLES=OFF -DBUILD_TESTING=OFF -DSECURITY=OFF; make fastrtps.

Why

So custom-fix branches (e.g. the SEDP GAP-deadlock backports eProsima#2254/eProsima#2448) can be CI-built into a drop-in .so for production — no local toolchain, both arches in one run. Drop-in over /opt/ros/foxy/lib/libfastrtps.so.2.1.4 is ABI-safe (SONAME stays .so.2, matches rmw_fastrtps_cpp 1.3.2).

Review only. Independent of the backport PRs (#1, #2).

GitHub Actions workflow building libfastrtps against ROS 2 Foxy / Ubuntu 20.04
in the osrf/ros:foxy-desktop container, for both amd64 (edge/server) and arm64
(Jetson) via QEMU. Produces libfastrtps.so.2.1.4 (SONAME libfastrtps.so.2,
ABI-compatible drop-in for rmw_fastrtps_cpp 1.3.2) as downloadable artifacts.

Lets custom-fix branches (e.g. the SEDP GAP-deadlock backports eProsima#2254/eProsima#2448) be
CI-built and dropped into running production without a local toolchain.
…nly)

osrf/ros:foxy-desktop has no arm64 manifest -> arm64 job failed with
'platform does not match'. ros:foxy-ros-base is multiarch (amd64+arm64) and
has the toolchain to build fastrtps (validated locally: arm64 build green).
Sync PR #3 workflow to the validated integration version:
- -DSECURITY=ON + libssl-dev (root-cause fix for bridge_bot std::bad_alloc:
  SECURITY=OFF mismatched Foxy's security-ON rmw -> garbage discovery
  lengths -> huge alloc). Adds ABI guard (fail if SecurityManager symbols==0).
- amd64 on org ubuntu-latest-8-cores, arm64 on native ubuntu-22.04-arm
  (was osrf/ros:foxy-desktop amd64-only + QEMU). Base ros:foxy-ros-base (multiarch).
Validated on sim: agent_status flows, bad_alloc=0, 97 SecurityManager symbols (matches stock).
@amitsingh21

Copy link
Copy Markdown
Author

Closing: this change is already integrated into rapyuta/2.1.4-foxy-sedp-fix (the consolidated deploy branch). Tracked in the consolidation PR foxy-sedp-fix -> foxy-base. No code lost; closing to clear PR clutter.

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