Eight fundamentals for CI/CD:

  • A single source repository - Source code management should be used to store all the necessary files and scripts required to build the application.
  • Frequent check-ins to the main branch - Code updates should be kept smaller and performed more frequently to ensure integrations occur as efficiently as possible.
  • Automated builds - Build should be automated and executed as updates are being pushed to the branches of the source code storage solution.
  • Self-testing builds - As builds are automated, there should be steps introduced where the outcome of the build is automatically tested for integrity, quality, and security compliance.
  • Frequent iterations - By making frequent commits, conflicts occur less frequently. Hence, commits should be kept smaller and made regularly.
  • Stable testing environments - Code should be tested in an environment that mimics production as closely as possible.
  • Maximum visibility - Each developer should have access to the latest builds and code to understand and see the changes that have been made.
  • Predictable deployments anytime - The pipeline should be streamlined to ensure that deployments can be made at any time with almost no risk to production stability.