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 AWS Codepipeline.
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).