go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/bisection/README.md (about) 1 # LUCI Bisection 2 3 LUCI Bisection (formerly GoFindit) is the culprit finding service for compile and test failures for Chrome Browser. 4 5 This is the rewrite in Golang of the Python2 version of Findit (findit-for-me.appspot.com). 6 7 ## Local Development 8 9 To run the server locally, firstly you need to authenticate 10 ``` 11 gcloud config set project luci-bisection-dev 12 gcloud auth application-default login 13 ``` 14 and 15 ``` 16 luci-auth login -scopes "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/userinfo.email" 17 ``` 18 19 ### Building the Frontend 20 21 The frontend code under the root bisection directory has been deprecated. 22 See `milo/ui/src/bisection` for bisection frontend code. 23 24 ### Running LUCI Bisection 25 26 In the root bisection directory, run 27 ``` 28 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 29 ``` 30 31 This will start a web server running at http://localhost:8800. 32 33 ### Developer Test Deployment 34 35 LUCI Bisection uses `gae.py` for manual deployment of the GAE instances for developer 36 testing (e.g. of local changes). 37 38 In the root bisection directory, run 39 ``` 40 eval `../../../../env.py` 41 make deploy 42 ``` 43 44 ## Releasing 45 46 The dev and prod instances are managed via 47 [LUCI GAE Automatic Deployment (Googlers-only)](http://go/luci/how_to_deploy.md). 48 49 ### Dev instance 50 51 Releases are automatically pushed to luci-bisection-dev on commit by the 52 [gae-deploy](https://ci.chromium.org/p/infradata-gae/builders/ci/gae-deploy) 53 builder. 54 55 ### Prod instance 56 57 To push to prod: 58 1. Get an `infra_internal` checkout 59 1. Change to the `data/gae` directory: 60 * `cd data/gae` 61 1. Get the latest changes from the `main` branch: 62 * `git checkout main && git pull` 63 1. Switch to a local branch: 64 * `git checkout -b <local-branch-name>` 65 1. Create the CL to update the "canary" and "stable" version: 66 1. `./scripts/promote.py luci-bisection --canary --stable --commit` 67 1. `git cl upload` 68 * this will create a CL like [this one](https://chrome-internal-review.googlesource.com/c/infradata/gae/+/5008853) 69 1. Mail and land the CL. 70 * If you want to rollback prod to the previous version, rollback this CL.