tree: 281beb53fc42af17cf74927e6ee415c2129c9d50 [path history] [tgz]
  1. .gitignore
  2. Makefile
  3. README.md
  4. cmd/
  5. create-github-token-secret.sh
  6. create-gold-corp-sa.sh
  7. create-gold-public-sa.sh
  8. demo-page-assets/
  9. dockerfiles/
  10. docs/
  11. go/
  12. k8s-config-templates/
  13. k8s-instances/
  14. k8s_release_baseline_server
  15. k8s_release_diffcalculator
  16. k8s_release_frontend
  17. k8s_release_gitilesfollower
  18. k8s_release_goldpushk_crashing_server
  19. k8s_release_goldpushk_healthy_server
  20. k8s_release_ingestion
  21. k8s_release_periodictasks
  22. karma.conf.ts
  23. modules/
  24. pages/
  25. probersk.json5
  26. static/
  27. tsconfig.json
  28. webpack.config.ts
golden/README.md

Gold Correctness

For information on setting up or using Gold, see these docs.

For an architectural overview, see: https://docs.google.com/document/d/1U7eBzYrZCPx24Lp9JH2scKj3G8Gr8GRtQJZRhdigyRQ/edit

To run Gold locally, see: https://skia.googlesource.com/infra-internal/+show/c6fad0bec78c6768ce7e4187606325216dd438ed/scripts/start-gold-chrome-gpu.sh

Working on the lit-html frontend

Gold follows the pulito model of organization and uses webpack to bundle the pages together.

To get started, run npm ci in the repository‘s root directory. You won’t need to run this very often - only when deps are rolled forward.

The lit-html pages are in ./pages. These are very simple, as they compose more complex modules found in ./modules. To access the demo pages for the modules, run

make serve

Then open a web browser to localhost:8080/dist/[module].html. These demo pages have some mock data (piped in via a mock-fetch) and are good proxies for working with real data from a real web server.

The pages in ./pages also show up at localhost:8080/dist/[page].html although these won‘t be as interesting as there is no mock data and you may see strange artifacts like {{.Title}} as that’s where the golang templating on the server will insert data.

To run the tests for these lit-html pages, run:

make js-test

If you want a browser window left open to inspect the output (e.g. tests are failing):

make js-test-debug

Tests tend to make sure that data processing and html structure is done correctly. CSS and “how it looks” are presumed to be handled by a human during development and integration

If you are running the frontend server locally, you can (in another terminal) run

make frontend

which will rebuild all the frontend pages. When in --local mode, the frontend server will reload the templates/pages every time, so you don't have to restart it to see the re-built pages.

Backend Storage

Gold uses CockroachDB to store all data necessary for running the backend servers. (Caveat: We are in the middle of a migration towards this goal.)

For production-specific advice, see docs/PROD.md.