Environment and Context

  • The implementation should be guided by the realities of what you’re testing. Do you have physical machines like FPGAs you’re testing? If so, you probably can’t use certain types of virtualization technologies effectively
  • The environment should be deterministic and reproducible
  • The configuration for the CI/CD implementation should be declaratively specified but ultimately it’s not a concern of what you’re testing
  • Configuration should be idempotent
  • Deployed branches are always green
  • Every individual commit in a deployed branch represents a working application
  • Development Environments