-
Notifications
You must be signed in to change notification settings - Fork 20
Description
Problem
When changes are merged to main in ros2_medkit, there is no automated verification that the downstream demo images (selfpatch_demos) still build successfully. This has already caused breakage the recent addition of cmake/ROS2MedkitCompat.cmake went undetected because the demo Dockerfiles were not updated to preserve the new directory, and no cross-repo CI caught it (selfpatch/selfpatch_demos#28, selfpatch/selfpatch_demos#30).
The selfpatch_demos CI (ci.yml) already has a docker-build job that builds all three demo images (sensor_diagnostics, turtlebot3_integration, moveit_pick_place), but it only runs on PRs and pushes to selfpatch_demos itself. Changes in ros2_medkit which the demos clone from main at build time are invisible to it.
Proposal
Add a repository_dispatch or workflow_dispatch trigger to selfpatch_demos CI, and dispatch it from ros2_medkit CI on push to main.
Option A: repository_dispatch (recommended)
selfpatch_demos add trigger to existing ci.yml:
on:
pull_request:
branches: [main]
push:
branches: [main]
repository_dispatch:
types: [ros2_medkit_updated]ros2_medkit add a job to ci.yml that fires after successful build:
notify-demos:
needs: build-and-test
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- name: Trigger selfpatch_demos CI
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.DEMOS_DISPATCH_TOKEN }}
repository: selfpatch/selfpatch_demos
event-type: ros2_medkit_updatedRequires a PAT or fine-grained token with actions:write on selfpatch_demos, stored as DEMOS_DISPATCH_TOKEN in ros2_medkit secrets.
Option B: workflow_dispatch + GitHub CLI
Same idea but using gh workflow run from ros2_medkit CI. Slightly simpler but less structured.
Acceptance criteria
- A merge to
ros2_medkit/maintriggers a fulldocker-buildjob inselfpatch_demos - Demo build failures are visible in
ros2_medkitCI (or at minimum inselfpatch_demoswith a clear link back) - No impact on
selfpatch_demosPR workflows dispatch builds should not block unrelated PRs