Jump to >

Integrations 0.5 Beta 2 Release Notes

Release date: October 5, 2017

New Features

CircleCI Integration

This release adds support for CircleCI, a popular continuous integration service used to automatically build software and run tests to ensure code quality and repeated testing.

This integration requires CircleCI 2.0, a repository hosted on GitHub or Bitbucket, and requires manual changes to .circleci/config.yml in the repository. A “reviewboard” job must be added that performs any tests that are needed. This should look something like:

reviewboard:
  steps:
    - checkout
    - run:
      name: Apply Patch
      command: |
        sudo pip install RBTools
        rbt patch --api-token "$REVIEWBOARD_API_TOKEN" \
                  --server "$REVIEWBOARD_SERVER" \
                  --diff-revision "$REVIEWBOARD_DIFF_REVISION" \
                  "$REVIEWBOARD_REVIEW_REQUEST"

    - run:
      # Your tests here
      ...

notify:
  webhooks:
    - url: https://reviewboard.example.com/rbintegrations/circle-ci/webhook/

(Note that your commands should never treat the build as safe, and should not deploy any changes from this build.)

The configuration steps can make use of the following build parameters:

CIRCLE_JOB:
This will be reviewboard
REVIEWBOARD_SERVER:
The URL to the Review Board server. This must be accessible to CircleCI over the Internet.
REVIEWBOARD_REVIEW_REQUEST:
The ID of the review request being tested.
REVIEWBOARD_DIFF_REVISION:
The posted Review Board revision of the diff being tested.
REVIEWBOARD_API_TOKEN:
An API token used to communicate with Review Board’s API in order to report status.
REVIEWBOARD_STATUS_UPDATE_ID:
The ID of the status update used to report the result of the build.

Full documentation will be added for configuring a CircleCI repository by the final release.

Travis CI Integration

Supported for Travis CI has also been added. This is another popular continuous integration service, often used by open source products. It only works with GitHub repositories.

Configuration works a bit differently from CircleCI. Due to current restrictions when working with Travis CI’s API, all builds will show up in the main “Branches” view, which won’t differentiate between builds from commits and builds from Review Board. In order to avoid polluting this for a production Travis CI project, we recommend creating a branch used solely for review requests (such as review-requests/master or review-requests/1.0.x) on the GitHub repository and set that branch in the Travis CI integration configuration.

The integration will use a custom version of the existing Travis CI configuration for your repository when performing a build. It will update the script section to fetch the patch from Review Board, and will update the notifications section to enable a WebHook for notifying Review Board about the status of the build. It will also add special environment variables used as part of the notification process.

Documentation will be added for configuring a Travis CI repository by the final release.

Contributors

  • Christian Hammond
  • David Trowbridge
  • Michael Udaltsov