git clone --recursive https://github.com/GoogleChrome/chromium-dashboard
- Install global CLIs
- Google App Engine SDK for Python.
- pip, node, npm.
- Gulp
npm install -g gulp
- Install npm dependencies
npm ci
- Install other dependencies
npm run deps
Create a file named env_vars.yaml
in the root directory and fill it with:
env_variables:
DJANGO_SETTINGS_MODULE: 'settings'
To start the main server and the notifier backend, run:
npm start
To start front end code watching (sass, js lint check, babel, minify files), run
npm run watch
To run lint & lit-analyzer:
npm run lint
To run unit tests:
npm run test
Note: featurelist is temporarily excluded because lit-analyzer throws Maximum call stack size exceeded
.
There are some developing information in developer-documentation.md.
If you want to test push notification features, you'll need to create a file named
.fcm_server_key
in the main project root. Copy in the FCM server key obtained
from the Firebase console.
When ./scripts/start_server.sh
is run, it will populate this value as an environment variable.
Notes
- Locally, the
/feature
list pulls from prod (https://www.chromestatus.com/features.json). Opening one of the features will 404 because the entry is not actually in the local db. If you want to test local entries, modifytemplates/features.html
to pull locally and add some db entries by signing in to the app (bottom link). Make sure to check the "sign in as admin" box when doing so. Note that you can also simply go tohttp://127.0.0.1:8080/
instead oflocalhost
to pull locally.
Chromestatus gets the list of Blink components from a separate app running on Firebase. See source.
Visit http://localhost:8080/admin/blink/populate_blink to see the list of Blink component owners.
settings.py
contains a list
of globals for debugging and running the site locally.
If you have uncommited local changes, the appengine version name will end with -tainted
.
It is OK to test on staging with tainted versions, but everything should be committed
(and thus not tainted) before staging a version that can later be pushed to prod.
Note you need to have admin privileges on the cr-status-staging
and cr-status
cloud projects to be able to deploy the site.
Run the npm target:
npm run staging
Open the Google Developer Console for the staging site and flip to the new version by selecting from the list and clicking MIGRATE TRAFFIC. Make sure to do this for both the 'default' service as well as for the 'notifier' service.
If manual testing on the staging server looks good, then repeat the same steps to deploy to prod:
npm run deploy
Open the Google Developer Console for the production site
The production site should only have versions that match versions on staging.
Copyright (c) 2013-2016 Google Inc. All rights reserved.
Apache2 License.