Government Frontend is a public-facing app to display the majority of documents on the /government part of GOV.UK. It is a replacement for the public-facing parts of the Whitehall application.
Not all formats that this app can handle are rendered by it in production.
Format | Live example | Production status |
---|---|---|
Answer | View on GOV.UK | Migrated |
Case study | View on GOV.UK | Migrated |
Coming soon | Rendered by Whitehall | |
Consultation | View on GOV.UK | Migrated |
Contacts | View on GOV.UK | Migrated |
Corporate information page | View on GOV.UK | Migrated |
Detailed guide | View on GOV.UK | Migrated |
Document collection | View on GOV.UK | Migrated |
Fatality notice | View on GOV.UK | Migrated |
Help page | View on GOV.UK | Migrated |
HTML Publication | View on GOV.UK | Migrated |
News Article | View on GOV.UK | Migrated |
Publication | View on GOV.UK | Migrated |
Specialist document | View on GOV.UK | Migrated |
Statistics announcement | View on GOV.UK | Migrated |
Statistical data set | View on GOV.UK | Migrated |
Speech | View on GOV.UK | Migrated |
Take part | View on GOV.UK | Migrated |
Topical event about page | View on GOV.UK | Migrated |
Travel advice | View on GOV.UK | Migrated |
Unpublishing | Rendered by Whitehall, might not be migrated | |
World Location News Article | View on GOV.UK | Migrated |
Working group | View on GOV.UK | Migrated |
This is a Ruby on Rails application that fetches documents from content-store and displays them.
- content-store - provides documents
- static - provides shared GOV.UK assets and templates.
- phantomjs Used by poltergeist for integration testing
./startup.sh
The app should start on http://localhost:3090 or http://government-frontend.dev.gov.uk on GOV.UK development machines.
./startup.sh --live
This will run the app and point it at the production GOV.UK content-store
and static
instances.
The test suite relies on the presence of the govuk-content-schemas repository. If it is present at the same directory level as the government-frontend repository then run the tests with:
bundle exec rake
Or to specify the location explicitly:
GOVUK_CONTENT_SCHEMAS_PATH=/some/dir/govuk-content-schemas bundle exec rake
If you want to see the page that is being tested in our integration tests, you can use
save_and_open_page
to see what's rendered. This is helpful when a page is mostly comprised of
GOV.UK Publishing Components
Use Wraith ("A responsive screenshot comparison tool") to generate a visual diff to compare rendering changes in this application.
Compare development with production:
bundle exec wraith capture test/wraith/config.yaml
Compare staging with production:
bundle exec wraith capture test/wraith/config-staging-vs-production.yaml
This will generate image diffs comparing the two runs, including a browsable
gallery of the output, located at shots/gallery.html
.
Examples are referencing https://github.com/alphagov/govuk-content-schemas
With government-frontend running master on the development VM and while pointing at the dummy content store, create a set of historical screenshots using:
cd test/wraith
bundle exec wraith history test/wraith/config-examples.yaml
Then switch to your branch and create a set of screenshots to compare against using:
bundle exec wraith latest test/wraith/config-examples.yaml
A rake task has been made to make this easy, given a document_type of about bundle exec wraith_document_type[about]
this will run against the 10 most popular pages as defined by the search api
If you wish to have your own local wip configs, wip* is in the .gitignore, so as an example
wip-kittens.yaml
will be ignored
There’s a rails generator you can use to stub the basic files needed for a new format. It stubs the following:
- Stylesheet
- Template
- Presenter
- Presenter test
- Integration test
bundle exec rails generate format [format_name]