tree: 81c2ed9c06c89f548cf6eed51cdeb2eca380871e [path history] [tgz]
  1. api/
  2. buildsource/
  3. common/
  4. frontend/
  5. git/
  6. rpc/
  7. .gitignore
  8. Makefile

Milo - The interface into luci.


  • frontend/appengine/
    • main.go - Main router and entry point into app.
    • static/ - CSS and JS assets. All assets go under a named subfolder.
    • templates/ - HTML assets for use with go templates.
  • common/miloerror - Error subclass used to pass HTTP statuses.
  • client/cmd/backfill - Git data backfiller.

Subdirectory layout

To retain convention, each data source (e.g. swarming, DM) should have the following files:

  • html.go - All routable HTML endpoints of type handler.

Themes and Templates

Milo supports the switching of themes (template bundles) based on user preference. Themes must follow these layouts:

  • Go Templates go under appengine/frontend/templates/[[Theme Name]] ** Base templates go under appengine/frontend/templates/[[Theme Name]]/includes ** Actual templates go under appengine/frontend/templates/[[Theme Name]]/pages
  • Static resources (css, javascript, images, etc) go under /frontend/static/[[Theme Name]]. This boundry isn't enforced, this is just by convention, so one theme is allowed to use resources in other themes (but it is not recommended)
  • Add the Theme Name into the map in appengine/settings/theme.go:THEMES

Seeding data for local development

  • After starting the dev_appserver, run go run client/cmd/backfill/main.go buildbot -master=“” -remote-url=“localhost:8080” -dryrun=false -buildbot-fallback=true (replace the port number with your dev_appserver port number)