위키득계정 ↗
기술

Bazel

Bazel기술
주요 역할
다언어 빌드와 테스트
구성 단위
저장소 패키지 타깃
패키지 정의
BUILD 또는 BUILD.bazel
확장 언어
Starlark
Bazel은 여러 언어의 소프트웨어를 빌드하고 테스트하는 도구다. 파일과 규칙의 의존 관계를 분석해 필요한 부분을 증분 실행하고 로컬 및 분산 캐시와 병렬 처리를 활용한다.

저장소와 패키지의 구성

소스는 저장소의 디렉터리 트리에 놓이고 주 저장소와 외부 저장소를 포함하는 환경을 작업공간으로 다룬다. BUILD 파일이 있는 디렉터리가 패키지를 정의한다. 하위 디렉터리에 별도의 BUILD 파일이 있으면 다른 패키지 경계를 이루므로 파일 위치와 패키지 소속을 구분한다.

규칙의 입력과 산출물

패키지 안에는 파일이나 규칙으로 정의되는 타깃이 있다. 규칙은 입력 파일과 출력 파일의 관계를 나타내며 다른 규칙의 산출물을 입력으로 사용할 수 있다. 의존 관계를 바탕으로 바뀐 부분에 필요한 작업을 계산하고 캐시 및 병렬 실행을 활용한다.

여러 언어와 확장

Java와 C++을 비롯한 여러 언어 및 플랫폼을 지원하며 확장 언어로 규칙을 정의하고 재사용할 수 있다. 큰 단일 저장소뿐 아니라 여러 저장소의 구성도 다룬다. 빌드 도구가 의존 관계를 분석하려면 각 프로젝트의 입력과 작업 규칙이 올바르게 정의되어 있어야 한다.

관련 문서

Starlark / BuildKit / Mage / Make / 지속적 통합 / 빌드 시스템