Skip to content
This repository has been archived by the owner on May 24, 2022. It is now read-only.

Latest commit

 

History

History
25 lines (23 loc) · 1.94 KB

File metadata and controls

25 lines (23 loc) · 1.94 KB

Continuous Integration

As a service, I should:

  • Make sure I stub ALL dependent services
  • Use in-memory datastores for unit/integration tests if you have to test with data
  • Make sure I follow the testing pyramid
  • Make sure all services have independent lifecycles from each other i.e. separately versioned (they may depend on specific versions of each other but not rely on being coupled)
  • Make sure I can iterate on a service without breaking services that depend on me
  • Make sure I take ownership of schema migration and test this as an integration test
  • Make sure I do BDD at the source of that service and not across multiple services (leave that for smoke tests)
  • Use protective branches and allow to merge into master only if tests and status checks pass
  • Need a peer review of my code before my PR can be merged
  • The code can be merged as long as the tests and status check pass and it is peer reviewed
  • Do unit, integration and acceptance tests on PRs before and after they are merged
  • Perform automated smoke tests to validate that things work together as expected
  • Have clear, concise commit messages conforming to semantic commit messages, and using the footer to add bug tracker/story ID and/or username(s) if developed in a pair/mob (git commit --verbose is useful for multi-line messages)
  • Protect your master branch
  • No force pushing to master
  • Reviews required on PRs before they can be merged
  • Develop each story on a new branch
  • Merge to master regularly to avoid merge hell
  • Make sure issues are tracked with the corresponding code repository
  • Make sure epic issues are tracked at the service repository level
  • Understand github's issue management as part of the development workflow