bisection

command
v0.0.0-...-326d2f0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 13, 2024 License: Apache-2.0 Imports: 35 Imported by: 0

README

LUCI Bisection

LUCI Bisection (formerly GoFindit) is the culprit finding service for compile and test failures for Chrome Browser.

This is the rewrite in Golang of the Python2 version of Findit (findit-for-me.appspot.com).

Local Development

To run the server locally, firstly you need to authenticate

gcloud config set project luci-bisection-dev
gcloud auth application-default login

and

luci-auth login -scopes "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/userinfo.email"
Building the Frontend

The frontend code under the root bisection directory has been deprecated. See milo/ui/src/bisection for bisection frontend code.

Running LUCI Bisection

In the root bisection directory, run

go run main.go -cloud-project luci-bisection-dev -primary-tink-aead-key sm://tink-aead-primary -config-service-host luci-config.appspot.com -luci-analysis-project luci-analysis-dev

This will start a web server running at http://localhost:8800.

Developer Test Deployment

LUCI Bisection uses gae.py for manual deployment of the GAE instances for developer testing (e.g. of local changes).

In the root bisection directory, run

eval `../../../../env.py`
make deploy

Releasing

The dev and prod instances are managed via LUCI GAE Automatic Deployment (Googlers-only).

Dev instance

Releases are automatically pushed to luci-bisection-dev on commit by the gae-deploy builder.

Prod instance

To push to prod:

  1. Get an infra_internal checkout
  2. Change to the data/gae directory:
    • cd data/gae
  3. Get the latest changes from the main branch:
    • git checkout main && git pull
  4. Switch to a local branch:
    • git checkout -b <local-branch-name>
  5. Create the CL to update the "canary" and "stable" version:
    1. ./scripts/promote.py luci-bisection --canary --stable --commit
    2. git cl upload
  6. Mail and land the CL.
    • If you want to rollback prod to the previous version, rollback this CL.

Documentation

Overview

Package main implements the App Engine based HTTP server to handle request to LUCI Bisection

Directories

Path Synopsis
Package bqexporter handles export to BigQuery.
Package bqexporter handles export to BigQuery.
Package compilefailureanalysis is the component for analyzing compile failures.
Package compilefailureanalysis is the component for analyzing compile failures.
cancelanalysis
Package cancelanalysis handles cancelation of existing analyses.
Package cancelanalysis handles cancelation of existing analyses.
compilelog
Package compilelogs handles downloading logs for compile failures
Package compilelogs handles downloading logs for compile failures
nthsection
Package nthsection performs nthsection analysis.
Package nthsection performs nthsection analysis.
statusupdater
Package statusupdater updates analysis status based on the data in datastore.
Package statusupdater updates analysis status based on the data in datastore.
Package compilefailuredetection analyses a failed build and determines if it needs to trigger a new analysis for it.
Package compilefailuredetection analyses a failed build and determines if it needs to trigger a new analysis for it.
culpritaction
revertculprit
Package revertculprit contains the logic to revert culprits
Package revertculprit contains the logic to revert culprits
Package culpritverification performs culprit verification for test failures.
Package culpritverification performs culprit verification for test failures.
task
Package task handle task scheduling for culprit verification.
Package task handle task scheduling for culprit verification.
internal
buildbucket
Package buildbucket contains logic of interacting with Buildbucket.
Package buildbucket contains logic of interacting with Buildbucket.
config
Package config implements config validation for LUCI Bisection
Package config implements config validation for LUCI Bisection
gerrit
Package gerrit contains logic for interacting with Gerrit
Package gerrit contains logic for interacting with Gerrit
gitiles
Package gitiles contains logic of interacting with Gitiles.
Package gitiles contains logic of interacting with Gitiles.
logdog
Package logdog contains logic of interacting with Logdog.
Package logdog contains logic of interacting with Logdog.
lucianalysis
Package lucianalysis contains methods to query test failures maintained in BigQuery.
Package lucianalysis contains methods to query test failures maintained in BigQuery.
lucinotify
Package lucinotify contains logic of interacting with LUCI Notify.
Package lucinotify contains logic of interacting with LUCI Notify.
rotationproxy
Package rotationproxy contains the logic to query for the on-call arborists from the Chrome Ops Rotation Proxy
Package rotationproxy contains the logic to query for the on-call arborists from the Chrome Ops Rotation Proxy
Package metrics handles sending metrics to tsmon.
Package metrics handles sending metrics to tsmon.
Package model contains the datastore model for LUCI Bisection.
Package model contains the datastore model for LUCI Bisection.
Package nthsectionsnapshot contains the logic for getting the current state for nthsection analysis and get the next commits to run.
Package nthsectionsnapshot contains the logic for getting the current state for nthsection analysis and get the next commits to run.
proto
bq
Package bqpb contains protos for BigQuery.
Package bqpb contains protos for BigQuery.
config
Package configpb contains protos for service-wide configuration data for LUCI Bisection
Package configpb contains protos for service-wide configuration data for LUCI Bisection
v1
Package bisectionpb contains the proto definitions for LUCI Bisection.
Package bisectionpb contains the proto definitions for LUCI Bisection.
Package pubsub handles pub/sub messages
Package pubsub handles pub/sub messages
Package rerun handles rerun for a build.
Package rerun handles rerun for a build.
Package server implements the LUCI Bisection servers to handle pRPC requests.
Package server implements the LUCI Bisection servers to handle pRPC requests.
updatetestrerun
Package updatetestrerun updates test failure analysis when we got test results from recipes.
Package updatetestrerun updates test failure analysis when we got test results from recipes.
task
Package testfailureanalysis handles test failure analysis.
Package testfailureanalysis handles test failure analysis.
bisection
Package bisection performs bisection for test failures.
Package bisection performs bisection for test failures.
bisection/analysis
Package analysis contains the interface to LUCI Analysis for bisector.
Package analysis contains the interface to LUCI Analysis for bisector.
bisection/chromium
Package chromium performs bisection for test failures for Chromium project.
Package chromium performs bisection for test failures for Chromium project.
bisection/projectbisector
Package projectbisector declare the interface that each individual project bisector needs to implement.
Package projectbisector declare the interface that each individual project bisector needs to implement.
Package testfailuredetection analyses recent test failures with the changepoint analysis from LUCI analysis, and select test failures to bisect.
Package testfailuredetection analyses recent test failures with the changepoint analysis from LUCI analysis, and select test failures to bisect.
Package throttle analysis current running reruns and send task to test failure detector.
Package throttle analysis current running reruns and send task to test failure detector.
Package util contains utility functions
Package util contains utility functions
bqutil
Package bqutil contains utility functions for BigQuery.
Package bqutil contains utility functions for BigQuery.
changelogutil
Package changelogutil contains utility functions for changelogs.
Package changelogutil contains utility functions for changelogs.
datastoreutil
Package datastoreutil contains utility functions related to datastore entities
Package datastoreutil contains utility functions related to datastore entities
loggingutil
Package loggingutil contains utility functions for logging.
Package loggingutil contains utility functions for logging.
protoutil
Package protoutil contains the utility functions to convert to protobuf.
Package protoutil contains the utility functions to convert to protobuf.
testutil
Package testutil contains utility functions for test.
Package testutil contains utility functions for test.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL