This was previously handled as part of the "Services CI" workflow which will be deprecated later in this stack. This allows us to increase concurrency as we move over to the autoscaling EC2 instances.
Differences on Buildkite side:
1. We use the actual shell command (`cd services && docker-compose build --no-cache backup-server`) instead of `yarn build-backup-service` because the autoscaling instances are intended to be as minimal as possible and don't include `node`, `yarn`, etc.
2. We use the `--no-cache` flag to force a new complete build on each run. The previous "Services CI" workflow depended heavily on caches, because running 3-4 complete builds would take a long time. Now we can separate these out and take advantage of the concurrency provided by the autoscaling instances.