This doc is intended for people who either want to set up a project to use Tricium, or for those who want to configure where and how Tricium is triggered.
The Tricium service will be merged in the future with CQ in a new service called Change Verifier. Tricium analysis jobs will be regular tryjobs that happen to output comments; Tricium project configs will no longer be used, but most of the configuration and behavior of Tricium analyzers will be determined by the recipe that runs the analyzer.
Tricium supports projects that use LUCI and Gerrit code review.
When enabling Tricium for a new project, you will need to:
api.tricium.run_legacy
.Project-specific configs are kept in individual project repositories, alongside other LUCI configs for the project.
For example, they may be in the “infra/config” branch of your project's repository. To make changes on this branch, you can make a new branch with origin/infra/config as the upstream, for example by running:
git checkout -B branch-name --track origin/infra/config
A project config file for the production instance of Tricium must be named tricium-prod.cfg
, and generally looks something like this:
# Analyzer definition. functions { type: ANALYZER name: "Wrapper" needs: GIT_FILE_DETAILS provides: RESULTS owner: "someone@chromium.org" monorail_component: "Infra>Platform>Tricium>Analyzer" impls { runtime_platform: LINUX provides_for_platform: LINUX # The recipe determines the actual behavior, including what is run. recipe { project: "my-project" bucket: "try" builder: "tricium-analysis" } deadline: 900 } } selections { function: "Wrapper" platform: LINUX # Must match platform in definition. } repos { gerrit_project { host: "chromium-review.googlesource.com" project: "my/project" git_url: "https://chromium.googlesource.com/my-project" } } service_account: "tricium-prod@appspot.gserviceaccount.com"
See contribute.md for more details about adding your own analyzers.
If you are adding a new Analyzer to be used across multiple projects, you should add it to the tricium recipe module.
To make Tricium skip a particular change, you can add “Tricium: disable” to the CL description.