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).
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"
In another terminal window, build the project with watch for development:
cd frontend/ui npm run watch
This will build the React app. If left running, local changes to the React app will trigger re-building automatically.
To run the frontend unit tests,
cd frontend/ui npm test
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
This will start a web server running at http://localhost:8800. Navigate to this URL using your preferred browser. Once you “log in”, the LUCI Bisection frontend should load.
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
The dev and prod instances are managed via LUCI GAE Automatic Deployment (Googlers-only).
Releases are automatically pushed to luci-bisection-dev on commit by the gae-deploy builder.
To push to prod:
infra_internal
checkoutdata/gae
directory:cd data/gae
main
branch:git checkout main && git pull
git checkout -b <local-branch-name>
./scripts/promote.py luci-bisection --canary --stable --commit
git cl upload