Skip to content

Trigger selfpatch_demos CI on merge to main #224

@bburda

Description

@bburda

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_updated

Requires 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/main triggers a full docker-build job in selfpatch_demos
  • Demo build failures are visible in ros2_medkit CI (or at minimum in selfpatch_demos with a clear link back)
  • No impact on selfpatch_demos PR workflows dispatch builds should not block unrelated PRs

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions