GitHub PR Interaction with Jenkins

When a new pull request is opened in the project and the author of the pull request is not a member of the GitHub project or whitelisted, the Jenkins GitHub Pull Request Builder @drake-jenkins-bot will ask “Can one of the admins verify this patch?”

Respond:

  • “@drake-jenkins-bot ok to test” to accept this pull request for testing.
  • “@drake-jenkins-bot test this please” for a one time test run.
  • “@drake-jenkins-bot add to whitelist” to add the author to the whitelist.

If the build fails for other various reasons you can rebuild:

  • “@drake-jenkins-bot retest this please” to start a new build.

You can also view the Jenkins UI directly.

Running an On-Demand Build

There are a number of Jenkins builds that do not normally run pre-merge, but do run post-merge or nightly. The post-merge and nightly builds include long-running tests, lower-priority platforms (e.g. Mac), and specialized options (e.g. MemorySanitizer). Members of the RobotLocomotion organization can manually schedule these builds on pull requests that have not yet been merged, or on arbitrary commits in the RobotLocomotion/drake repository.

  1. Log in to Jenkins using GitHub OAuth.
  2. Go to the list of Experimental builds.
  3. Click on the specific build you want to schedule.
  4. Click on “Build with Parameters” in the left menu.
  5. Check the debug box if you want to build in Debug configuration.
  6. Enter pr/XYZ/head (HEAD of pull request), pr/XYZ/merge (pull request merged with master), or the desired commit SHA in the sha1 field.
  7. Click Build.

The list of Experimental builds includes a build named experimental, which automatically runs pre-merge, as well as numerous other builds for on-demand use. To help identify the on-demand build you want to run, you can consult the list of Continuous builds and the list of Nightly builds, but you can’t schedule Continuous or Nightly builds directly.