I'd like to showcase the deployment pipeline I use daily. It results in fearless deployments to production, and an excellent developer experience. I'll start with the most boring parts, and save the best for last.

By itself, the deployment pipeline already provides several reassurances for every change: the code still builds, the tests still succeed, etc. It also makes code coverage reports available for those specific changes.

The cool thing is: new production-like environments are deployed for every Git branch I create. When I'm working on an issue, I create a new branch associated with that issue, which will set up a new environment in which that issue's fix can be tested in isolation.

This "Review App" has its own URL, its own environment-specific build artefacts and reports, and a separate database. I can thus play around freely without interfering with production. It also allows me to verify reproducibly whether database migrations work.

Follow

After every deployment, instances of headless Chrome and Firefox are fired up. They visit the deployed app and run some basic checks, ensuring that the infrastructure was set up correctly, the deployment was successful, and the server runs as expected.

Next to the app itself, it also deploys a Storybook, showcasing the app in the various states it can be in. This is perfect for quickly verifying the effect of styling changes, without having to run through countless scenarios in order to reproduce specific app states.

To make that even easier, the pipeline also runs a visual regression test, which compares the various states of the app to reference screenshots created earlier. This prevents the inclusion of unintended changes, and allows me to view the effects of my changes at a glance.

All this is powered by freely available open source tools. More info at my blog: vincenttunru.com/fearless-depl

Sign in to participate in the conversation
Mastodon

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!