tree: 8a5e74503d32f2978fe08e039415882452c998c6 [path history] [tgz]
  1. common/
  2. docs/
  3. dto/
  4. first_party/
  5. gae_libs/
  6. handlers/
  7. infra_api_clients/
  8. libs/
  9. local_libs/
  10. model/
  11. pipelines/
  12. services/
  13. static/
  14. templates/
  15. test/
  16. third_party/
  17. ui/
  18. util_scripts/
  19. waterfall/
  20. .coveragerc
  21. .expect_tests.cfg
  22. .gitignore
  23. .style.yapf
  24. app.yaml
  25. appengine_config.py
  26. backend_main.py
  27. coverage_main.py
  28. cron.yaml
  29. default_main.py
  30. dispatch.yaml
  31. endpoint_api.py
  32. frontend_main.py
  33. index.yaml
  34. makefile
  35. module-auto-action-backend.yaml
  36. module-code-coverage-backend.yaml
  37. module-code-coverage-frontend.yaml
  38. module-flake-detection-backend.yaml
  39. module-frontend.yaml
  40. module-waterfall-backend.yaml
  41. OWNERS
  42. package-lock.json
  43. package.json
  44. queue.yaml
  45. README.md
appengine/findit/README.md

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/ contains service-layer code for the core analysis logic for compile failures, reliable test failures, and flaky tests.
  • pipelines/ contains code for the pipeline flows that connect the different analysis units from the service layer. We are refactoring 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

  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:

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.