Skip to main content

Get started with the applications

GovWifi applications are written in Ruby using either Rails or Sinatra web frameworks. Our infrastructure is written in Terraform.

To get started you’ll need Ruby installed on your system. We recommend using a Ruby version manager like rbenv which will allow you to install the correct version of Ruby for GovWifi projects.

We also recommend using the Terraform version manager tfenv to ensure we work with the same Terraform version.

Building a development / test environment

Each GovWifi application Github repository contains a README detailing how to build a development environment for running tests and making local changes.

Most of the projects use a combination of Make, Docker and docker-compose to create the necessary containers and seed data for a local development environment.

Bug and feature workflow

Please read the GDS Git style guide which details how your code commits should be structured.

Once you’re happy with your changes locally, submit a pull request. Raising a pull request in GitHub automatically notifies the #govwifi-monitoring Slack channel.

We follow the GDS Way for pull request best practices.

Pull request titles should be pithy and under Github’s 72 character limit. If the PR is a work in progress add WIP to the title so GitHub won’t alert in the #govwifi-monitoring channel.

Complete the pull request template by adding information to the “What” and “Why” sections:

### What
Describe the change

### Why
Describe why the change was necessary

If applicable, link to a Trello card or screen shots.

Pull requests are linted and tests are run on via GitHub Actions, the resulting status is shown on the PR.

Merging and deploying changes

Once approved and merged your PR is automatically built and deployed to our staging environment where you can perform further acceptance testing and smoke testing. After that, deploying to production is a manual step in Concourse CI.

Our pipelines include a step to force an update to the ECS tasks which are configured to use the latest image pushed to ECR.

The update ECS tasks command is a function declared in the aws_helpers.sh script, part of the govwifi-concourse-deploy-pipeline repo. This function is called by the deploy.sh script which is found in many of our repos (see govwifi-admin as an example).

This page was last reviewed on 7 September 2022. It needs to be reviewed again on 7 March 2023 by the page owner #govwifi .
This page was set to be reviewed before 7 March 2023 by the page owner #govwifi. This might mean the content is out of date.