We’re not using Heroku for our CI step (we run our CI on CircleCI).
On CircleCI, we run the CI for the whole monorepo, meaning that even if there was only a change in one of the packages, the CI will run the validations steps on all the packages.
We’ve managed to parallelize this step, so today we have 6 jobs running in parallel in the CI: validation for 5 packages and one end-to-end test. It takes around 2 minutes.
For each package, we have a command that the CI runs, e.g.
yarn workspace package1 validate. Inside package1’s
package.json , the
validate script does something like
validate: yarn lint && yarn flow && yarn test .
For review apps, we don’t use them either (we try to have very short leaved branches that we can merge often and that do not contain a full feature. We use feature flags to hide under-development features instead). We just have one pipeline per app, with staging and production steps.