blob: 180555422ea593beac9743e9a2a309abd9645818 [file] [view]
# Assumptions
The Current Working Directory is $SRC_ROOT/infra/appengine/findit, i.e. the
directory that contains this file. Please `cd` into it for the commands below to
work.
Note:
1. For Mac, if GoogleAppEngineLauncher is used to run Findit locally, you
may have to set the field "Extra Flags" under "Launch Settings" with value
"$SRC_ROOT/infra/appengine/findit/waterfall-backend.yaml
$SRC_ROOT/infra/appengine/findit/waterfall-frontend.yaml".
2. For Windows, you may have to read the contents of the makefile to learn how
to run all of the commands manually.
# How to run Findit locally?
From command line, run:
`make run`
Then open http://localhost:8080 for the home page.
# How to run unit tests for Findit?
From command line, run:
`make test`
If a code path branch is not tested and no line number is shown in the command
line output, you could check the code coverage report shown in the output.
# How to automatically format python code?
YAPF is used to format the code in chromium style, and it is expected to format
the code before uploading a CL for review. To install YAPF, please refer to
https://github.com/google/yapf.
From command line, run:
`make format`
# How to deploy to appengine?
## Staging
Deploy to the staging instance (and make it default):
`make clean && make deploy-staging`
## Production
Deploy to findit-for-me.appspot.com (production):
`make clean && make deploy-prod`
To make the new version the default:
`make migrate`
# Code Structure
* [services/](services/) contains service-layer code for the core analysis logic
for compile failures, reliable test failures, and flaky tests.
* [pipelines/](pipelines/) contains code for the pipeline flows that connect the
different analysis units from the service layer.
We are refactoring [waterfall/](waterfall/) into services/ and pipelines/ to
separate analysis logic from pipeline flow.
# BQ Event Tables
Contact wylieb@ with any questions about this.
To get bqchemaupdater installed run
```shell
cd infra/go
eval `./env.py`
./deps.py update
./deps.py install
```
This should install it in your path.
In the event that you need to create a table, run a command like this:
```shell
bqschemaupdater -message-dir <absolute findit dir>/model/proto/
-table "findit-for-me.events.test"
-message findit.TestAnalysisCompletionEvent
-dry-run
```
From findit/ this command may be out of date. Refer to bqschemaupdater --help.
WARNING: Consult with chrome-findit@ before running any commands that may
affect production data. Once you're confident that the command does what you
want, remove the -dry-run argument.