'Approach of system tests for multiple microservices in different repositories

I have 4 microservices composing my backend stack:

  • a Websocket "api"
  • a REST api
  • a Database server (neo4j)
  • a separate (Rest-like) service to load data in the database

general flow of communications is done this way:

(FRONT) <-> (Websocket) -> (REST api) -> (Graph)
                                            ^
                                            |
                                      (data uploader)

Each service has on its own GitHub repository.
Teams are working independently on each.
Unit and integration tests have been written for each of these microservices.
But as a whole system, they may be dependencies (because of evolving contracts) between version/branches between different repositories/microservices composing this stack.

how do I go about system tests and end-to-end tests in a CI/CD pipeline?

  • create a parent-level repository constituted of submodules (one for each micro service), then create a docker-compose file to test the "end-to-end" flow?
  • for each service, using some git clone to fetch latest version of each of the other microservices to check for.
  • Any better alternatives ?

haven't found many details or find best practices, except a few insights on answers posted here



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source