내보내기 데이터 선택 규칙
데이터 선택 규칙(Data selection rule)은 번들(Bundle)에 포함할 환경, 모듈, 제품, 릴리스 또는 팀을 지정합니다. 하나의 파이프라인에 여러 규칙을 둘 수 있습니다. 환경, 모듈, 제품을 선택하는 규칙에는 관련 제품 릴리스를 고르는 전략도 설정합니다.
선택할 리소스
Select Environments
배포 환경(Environment)과 환경별 제품 릴리스 선택 전략을 지정합니다. 환경의 설정과 선언한 배포 개체를 다른 허브에서 관리하려면 환경 내보내기를 사용합니다.
Select Modules
모듈(Module)과 모듈별 제품 릴리스 선택 전략을 지정합니다. Module only를 선택하면 최신 모듈 정의만 내보냅니다. 그렇지 않으면 제품 릴리스를 고를 채널을 지정해야 합니다.
예를 들어 가상의 module-1에 product-1과 product-2가 있고 채널 release-channel-A, release-channel-B를 선택하면, 두 제품 각각에서 두 채널에 해당하는 릴리스를 선택합니다. 관련 제품을 모듈로 묶어 계속 전달할 때 적합합니다.
Select Products
제품과 제품별 릴리스 선택 전략을 지정하고 하나 이상의 릴리스 채널을 선택합니다. 환경이나 모듈로 묶이지 않은 특정 제품 집합을 내보낼 때 사용합니다.
Select Releases
개별 제품 릴리스를 직접 지정합니다. 긴급 수정 릴리스 하나를 필요한 허브에 전달하는 일회성 전송 등에 적합합니다.
Select Teams
Apollo 팀(Team)을 내보냅니다. 이후 팀 정보의 변경은 다음 번들에 반영됩니다. 팀 식별자는 전달되지만 구성원과 권한은 전달되지 않으므로 대상 허브에서 설정해야 합니다.
제품 릴리스 선택 전략
No Product Releases
환경 같은 주 리소스만 내보내고 관련 제품 릴리스를 제외합니다. 제품 릴리스를 다른 파이프라인으로 전달하는 경우 번들 크기를 줄일 수 있습니다.
All Product Releases
초기화 이후 새로 게시되는 제품 릴리스를 빠짐없이 내보내는 전략입니다. Incremental 빌드와 함께 사용해야 이전 번들을 기준으로 새 릴리스를 구분할 수 있습니다. Snapshot이면 매번 초기화 번들로 평가합니다.
가상 예시에서 T1에 1.0.0, 1.0.1이 있으면 첫 초기화 번들은 최신 1.0.1을 포함합니다. T2에 1.0.2, 1.0.3이 추가되면 다음 증분 번들은 둘 다 포함하고 이미 보낸 1.0.1은 제외합니다. 따라서 이 전략 이름을 모든 과거 버전의 일괄 복사로 해석하면 안 됩니다. 변경 사이에 생긴 릴리스를 모두 전달하므로 번들이 커질 수 있습니다.
Minimal Product Releases
제품 의존 관계나 스키마 버전 등의 제약을 충족하는 업그레이드 경로에 필요한 릴리스만 내보냅니다. 같은 경로에서 필요 없는 중간 릴리스는 제외합니다. 이 전략도 Incremental에서 이전 번들 상태를 활용하며 Snapshot에서는 매번 초기화로 평가합니다.
가상 예시에서 T1의 1.0.0, 1.0.1 중 제약을 만족하는 1.0.1을 선택했다고 가정합니다. T2에 1.0.2, 1.0.3이 추가되고 1.0.3만으로 업그레이드 경로가 충족되면 다음 번들에는 1.0.3만 포함합니다. 1.0.1은 이미 전달했고 1.0.2는 필요 없는 중간 버전이므로 제외합니다. 중간 버전이 제약 충족에 필요하면 그 버전도 포함해야 합니다.
이 계산은 선택한 리소스 안의 모든 제품을 함께 고려합니다. 환경을 선택했다면 환경 전체 제품의 업그레이드 경로를 만족하는 최소 집합을 구합니다.