Use build ID for snapshot link if compared snapshot has no start time

Since test results can now be used from snapshots that have not finished running, we should switch to using the newly added start time, and use the build ID as the alternative for cases when start time isn't present (e.g. for older fault attributes)

Additional changes:
- Cleaned up a few properties
- Removed top padding from 'failure analysis' chip, since plugins added to commit container are now ordered alphabetically

Bug: b/273345354
Change-Id: I162a466591e8357dd7ad50351fb177fb8a70d97c
Reviewed-on: https://chromium-review.googlesource.com/c/infra/gerrit-plugins/buildbucket/+/4837117
Commit-Queue: Arthur Bello <artbello@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
6 files changed
tree: b03192983064235938588456ae0c4fc6bae53c91
  1. src/
  2. web/
  3. .eslintrc.json
  4. .gitignore
  5. BUILD
  6. codereview.settings
  7. LICENSE
  8. OWNERS
  9. README.md
  10. run-with-prod-data.sh
  11. run-with-testsite.sh
README.md

Buildbucket Plugin for Gerrit

Steps

Create buildbucket.config {.numbered}

Create buildbucket.config file in the repo‘s refs/meta/config ref, as well as the same file in all repositories in the repo’s inheritance chain (up to and including All-Projects).

An example buildbucket.config is below:

[host]
  git = "chromium.googlesource.com"
  gerrit = "chromium-review.googlesource.com"

[bucket "luci.chromium.try"]
[bucket "luci.chrome.try"]

In the vast majority of cases, the host.git and host.gerrit values are global to the entire host, so that stanza is specified in the All-Projects repo. Buckets and builders, on the other hand, are almost always very repository-specific, and so are only specified in “leaf” repositories which are not in any other repo's inheritance chain.

All changes to buildbucket.config files are instantly reflected. There is no caching period or need to restart the server.

If your project doesn't want the “retry failed” button to show, you can disable it:

[option]
  hide-retry-button = true

Configuring Builds {.numbered}

If your project uses Quick Run/RTS and wants to surface the rocket ship icon 🚀 for builds using Quick Run, you can show it by setting rts_was_used = true in the output properties (example recipe).

Tagging Builds

The plugin supports the following tags for changing how results are surfaced in Gerrit:

cq_experimental: For experimental builds. Builds tagged with this will only appear when “Show Additional Results” is enabled.

skip-retry-in-gerrit: Don't retry this build when a user chooses to “Retry Failed Builds”.

hide-in-gerrit: Don't show this build in Gerrit.

hide-test-results-in-gerrit: Don't show test results from this build.

Configure jwtservice {.numbered}

Add “jwtservice” in the repo's refs/meta/config/project.config with https://api.cr.dev.

[plugin "jwtservice"]
    audience = https://api.cr.dev

If the Buildbucket plugin should work for all the Gerrit projects in your Gerrit host, add the entry into the project.config in All-Projects.

Deploy the plugin

This plugin must be placed inside the Gerrit plugins directory:

git clone --recurse-submodules https://gerrit.googlesource.com/gerrit
cd gerrit/plugins
git clone https://chromium.googlesource.com/infra/gerrit-plugins/buildbucket

Web Plugin Development

Run the commands below in web/.

For running unit tests execute:

make test

For checking or fixing eslint formatter problems run:

make lint_test
make lint_fix

For testing the plugin with Gerrit FE Dev Helper the following command builds the JavaScript bundle and copies it to the plugins/buildbucket folder:

make build

and let the Dev Helper redirect from .+/plugins/buildbucket/static/buildbucket.js to http://localhost:8081/plugins_/plugins/buildbucket.js.

Note: Testing is disabled for Safari due to this issue.