문제

상황

  1. 사내에서 Monorepo를 채택하여 프로젝트를 Monorepo로 이전 작업을 진행
  2. Monorepo 특성상, 하나의 Repo에 프로젝트가 많아지게 됨.
  3. 파이프라인에서 모든 프로젝트를 직렬로 CI/CD 수행을 진행한다면 빌드타임에서 굉장히 큰 시간적 손실

의존성 setup을 yarn pnp를 해결한다고 해도 여전히 시프로젝트 별로 빌드시간이 누적되는 문제는 해결하지 못함

Setup(5분) → 프로젝트A(5분) → 프로젝트B(5분) → …

변경된 코드라인 탐색

변경을 위해선 현재 어떤 부분이 변경됐는지 추적이 가능해야하는 것 아닌가요?

Nx에선 해당 기능을 지원하고 있습니다.

nx show projects --affected --base=main --head=HEAD

위 명령어는 현재의 워크스페이스(모노레포)에서 변경된 라인만 탐색할 수 있는 명령어 입니다,

CircleCI Parallelism

프로젝트 별로 분산된 환경에서 build나 test를 실행한다면 훨씬 효율적인 CI/CD를 구성할 수 있음.