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.