- Changes should propagated through the pipeline immediately
- Deploy into a production-like environment
- Stop the pipeline on any failures
- Only build binaries once
- Run smoke tests in all your deployments
- Deploy the same way to every environment
The best practices above are the result of years of observations from engineers in the field, trying to solve issues that frequently arise during the software releasing process.
Watch the talk bellow if you are interested in why you should apply these practices and how to do it. If you want to go deeper into this topic, I recommend the Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation book by Jez Humble and David Farley.