# Continuous Integration & Deployment
Date: 2018-10-18
# Scope
Every project in this repo that we need to deploy
# Context
We have many applications built in this repo that we need to deploy. We need an automated system to do this without human errors.
# Decision
Use Codeship as a CI solution. It has a permission system more sofisticated than CircleCI that fits our needs.
All CI scripts are located in .ci
folder at the root of this repo.
Codeship stores only the environemnt variables and secrets strictly related to deployment such as Netlify's IDs and tokens, Prisma session key, Github Token, etc. Business related secrets are store in a private Github repository and fetched during deploy.
# Monorepo
Since this is a monorepo, all the apps are built and deployed one after another. This can be modified in Codeship UI by commenting out lines. For quick fixes, for example, we can remove all the apps except the one we need to deploy quickly.
# Manual deployments
It is possible to deploy manually from a local machine by using the scripts in .ci
directory. See .ci/README.md
for more information.