Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ci] Running drake-external-examples jobs against Drake pull requests #22574

Open
jwnimmer-tri opened this issue Jan 31, 2025 · 0 comments
Open
Assignees
Labels
component: continuous integration Jenkins, CDash, mirroring of externals, website infrastructure priority: medium type: feature request

Comments

@jwnimmer-tri
Copy link
Collaborator

jwnimmer-tri commented Jan 31, 2025

Is your feature request related to a problem? Please describe.

Our code in "DEE" (https://github.com/RobotLocomotion/drake-external-examples/) not only provides Drake users with documentation about how to use Drake downstream, but also provides Drake developers with test coverage that Drake works correctly when used downstream -- that our binary packages can install and run, that our CMake interface can build, that our bzlmod-exported dependency structure resolves correctly, etc.

When a Drake PR is changing build infrastructure, it risk breaking some of those guarantees. Developers can manually run most of the DEE tests locally, but not always all of them (e.g., macOS) and anyway running locally is a time-consuming and manual process, so often is done less than it should be. This leads to bugs slipping through to post-merge jobs (i.e., nightly), and hotfixes the next day. It also means that sometimes are nightly packaging builds we ship to users are broken.

Describe the solution you'd like

Add documentation to https://drake.mit.edu/jenkins.html that explains how to launch DEE job(s) against a pull request, on an opt-in basis. (This might also require adding some more software / scripts in support of the docs.)

All DEE flavors (currently N=8) must be supported, but need not all happen under the same umbrella -- it's okay to require the developer to click on multiple pages to get things launched. Of course all else being equal fewer clicks are better, but since this exercise happens somewhat rarely, we don't need to optimize it; we just need it to exist in some reasonable form.

In the best case, launching the job is a 'bot comment like with our normal provisioned / unprovisioned jobs; this is very simple and already understood. It's also fair to ask the developer to open a web page and copy-paste some git shas and click some buttons. Another valid but slightly annoying option would be to ask the developer to open a dummy DEE PR, and somehow point that PR to test the Drake PR in the code itself. The only mandatory requirement is that the job runs in CI, not locally. Whatever we can do to make that easy is better, but the request here is only to make it possible and documented.

Describe alternatives you've considered

N/A

Additional context

N/A

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: continuous integration Jenkins, CDash, mirroring of externals, website infrastructure priority: medium type: feature request
Development

No branches or pull requests

2 participants