Compliments GameOfLifeNoLibraries
But a production ready version with all the focus on tooling and a continuous delivery pipeline.
JavaScript type safety and compile checking using:
Import module features and generation using:
Module loading in the browser using:
- npm install
- npm run build
- npm run browserify
Behaviour driven tests written using:
Test's run in a browser enviroment using:
Code coverage reporting by Istanbul
- npm run test
- npm run test-single
Should be running on http://localhost:42420/ afterwards
- npm run start
App and all its dependancies packaged into a rerunable container using.
Image stored in Dockerhub
https://hub.docker.com/r/jamesharrisonza/gameoflifeproduction/
Using image and container tag/name: gol
Should be running on http://localhost:42420/ afterwards
- docker build -t gol .
- docker run -d --rm --name gol -p 42420:42420 gol
- docker run -it gol /bin/sh
Or even more simple
- docker-compose build
- docker-compose up
Runs tests as code is committed to the master branch. On test success: Builds a new Docker image for my app tagged with the last checkin SHA. Pushes the new image to my Dockerhub repo. On build success: Connect to my cluster and initiates a rolling update based off the new docker image and tag.
This project was previously hosted on Google's Cloud Platform and was using Kubernetes to orchestrate the containers.
My free credits ran out but you can see the commands commented out in this Readme and the CircleCI config.
Currently the Docker containers are spun up and hosted on
Heroku Cloud Application Platform
Which has a great free tier for project apps.
- Build step to copy css files to public folder, then git ignore public folder.
- Investigate new Chrome module loading support in the browser which will let me remove commonjs and browserfy.
- JS Minification
- Google analytics