go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/tree_status/README.md (about)

     1  # LUCI Tree Status Service
     2  
     3  This service maintains a open/closed status for each "tree" (e.g. chromium).  Trees are defined arbitrarily and do not have to correspond 1:1 with a git repo or any other concept.
     4  
     5  Each status update optionally includes a text description of why the tree was open/closed.
     6  
     7  The tree status is generally used to temporarily stop new CLs from being merged while gardeners fix a broken tree.
     8  
     9  ## Prerequisites
    10  
    11  Commands below assume you are running in the infra environment.
    12  To enter the infra env (via the infra.git checkout), run:
    13  ```
    14  eval infra/go/env.py
    15  ```
    16  
    17  ## Running tests locally
    18  
    19  ```
    20  INTEGRATION_TESTS=1 go test ./...
    21  ```
    22  
    23  ## Running locally
    24  
    25  ```
    26  go run main.go \
    27    -cloud-project luci-tree-status-dev \
    28    -auth-service-host chrome-infra-auth-dev.appspot.com \
    29    -spanner-database projects/luci-tree-status-dev/instances/dev/databases/luci-tree-status-dev \
    30    -frontend-client-id 713057630411-eqah8ap1ptgnf4nnepk10sutqg0msiv1.apps.googleusercontent.com
    31  ```
    32  
    33  You can test the RPCs using the [rpcexplorer](http://127.0.0.1:8800/rpcexplorer).
    34  
    35  ## Deploy demo instance with local changes to AppEngine
    36  
    37  ```
    38  gae.py upload --target-version ${USER} -A luci-tree-status-dev
    39  ```
    40  
    41  ## Deploy to staging
    42  
    43  Tree status is automatically deployed to staging by LUCI CD every time a CL is submitted.
    44  
    45  ## Deploy to prod
    46  
    47  The prod instance of LUCI Tree Status has not yet been created.