Search code examples
node.jscontinuous-integrationmicroservicescodeshipmonorepo

Codeship independent CI for microservices in monorepo


Currently we have a NodeJS monolith app. The tests run in Codeship and if the tests are green then the code will be deployed to Heroku. That is pretty easy.

So we would like to break up our monolith app into microservices and we prefer monorepo solution.

For example we have service-1 and service-2 in the repo. We would like to setup independent CI and deployment pipeline for each services on Codeship.

my-repo
  - service-1
    - src
    - package.json
    - docker-compose.yml
    - codeship-steps.yml
  - service-2
    - src
    - package.json
    - docker-compose.yml
    - codeship-steps.yml

Do you have any idea how can we setup the ideal CI?


Solution

  • Yes CodeShip Pro provides a Docker Compose-like approach to setting up multiple services from the same project space. Assuming microservices are already split up into their particular folders, a codeship-services.yml may look like the following:

        service-a:
          build:
            context: ./service-a
            dockerfile: Dockerfile # The Dockerfile in ./service-a directory
    
        service-b:
          build:
            context: ./service-b
    

    Please check out our comprehensive intro guide for more information