blob: 9800f47ad4136094096038a66d52017ad43a7391 [file] [log] [blame] [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 pytest` to run all tests;
* `make pytest TEST_GLOB=<path to a sub dir>` to run tests in a sub directory;
* `make pytest TEST_GLOB=<path to a sub dir>:*<test name>*` to run a given 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?
From command line, run:
`git cl format`
# How to deploy to appengine?
## Staging
Deploy to the staging instance (and make it default):
`make deploy-findit-staging`
## Production
Deploy to analysis.chromium.org (production):
`make deploy-findit-prod`
Please use [pantheon] to make the new version default.
# Code Structure
* Findit
* [handlers/](handlers/) contains logic to handle incoming http requests
* [services/](services/) contains core logic for cron jobs.
[pantheon]: https://pantheon.corp.google.com/appengine/versions?project=findit-for-me&src=ac&versionId=alpha&moduleId=default&pli=1&serviceId=default&versionssize=50