Skip to main content

Application: whitehall

Publishes government content on GOV.UK

GitHub
whitehall
Ownership
#govuk-platform-health
Hosting
AWS, on the whitehall_backend machine class
Continuously deployed?
Yes
Rake tasks
Integration, Staging or ⚠️ Production ⚠️

Relevant manual pages

Imported documents

Example pages published by whitehall

README

Running the Application

Use GOV.UK Docker to run any commands that follow.

Whitehall is deployed in two modes:

Traditionally, the two sides of Whitehall are available on different domains in development, which reflect their counterparts in production:

While this usually results in different routing behaviour, in development all routes can be accessed from either domain, although the redirect behaviour may differ.

Nomenclature

  • Govspeak A variation of Markdown used throughout whitehall as the general publishing format

Technical documentation

This is a Ruby on Rails app, and should follow our Rails app conventions.

You can use the GOV.UK Docker environment to run the application and its tests with all the necessary dependencies. Follow the usage instructions to get started.

Shared mustache templates

The shared mustache templates must be compiled for JavaScript and functional tests to pass.

bundle exec rake shared_mustache:compile
bundle exec rake shared_mustache:clean

Shared mustache templates are generated and stored in app/assets/javascripts/templates.js.

In absence of this generated template, shared mustache inlines mustache templates in <script> blocks on the page, which enables developers to see changes to mustache without compiling. If this generated template is checked-in, shared mustache uses this file instead of inlining templates. Hence, we don’t check-in this file.

Running the test suite

# run all the test suites
bundle exec rake

Whitehall has its own parallelisation mechanism to run unit tests in Ruby:

# run Ruby unit tests
bundle exec rake test:in_parallel

Javascript unit tests can also be run separately:

# run all the JavaScript tests
bundle exec rake test:javascript

To run or debug individual JavaScript tests, try viewing them in your browser. Start the app as you would normally, and then go to /teaspoon/default.

Further documentation

See the docs/ directory.

Licence

MIT License