Speed up build time by moving these two tasks to one step so that a new container doesn't have to be spun up and the cached modules from the build step are reused in the test step.
This adds pre-commit which can be used to enforce consistent style and common errors (like committing large files)