InfoGrab Docs

GitLab CI/CD의 Matrix 표현식

GitLab CI/CD의 Matrix 표현식에 대해 설명합니다.

히스토리 GitLab 18.6에서 도입 되었습니다. Matrix 표현식은 parallel:matrix 식별자를 기반으로 동적 작업 의존성을 활성화하여 parallel:matrix 작업 간에 1:1 매핑을 생성합니다. Matrix 표현식은 inputs 표현식 과 비교하여 몇 가지 제한 사항이 있습니다: 컴파일 시점만: 식별자는 파이프라인이 생성될 때 확인되며, 작업 실행 중이 아닙니다. 문자열 교체만: 복잡한 로직이나 변환 없음. Matrix 식별자만: CI/CD 변수나 inputs를 참조할 수 없습니다. 구문 # Matrix 표현식은 $[[ matrix.IDENTIFIER ]] 구문을 사용하여 작업 의존성에서 parallel:matrix 식별자를 참조합니다. 예를 들어: needs: - job: build parallel: matrix: - OS: [ '$[[ matrix.OS ]]' ] ARCH: [ '$[[ matrix.ARCH ]]' ] needs:parallel:matrix 에서 Matrix 표현식 # Matrix 표현식을 사용하여 작업 의존성에서 Matrix 식별자를 동적으로 참조하고, 모든 조합을 수동으로 지정하지 않고 Matrix 작업 간에 1:1 매핑을 활성화할 수 있습니다. 예를 들어: linux:build: stage: build script: echo "Building linux..." parallel: matrix: - PROVIDER: [ aws , gcp ] STACK: [ monitoring , app1 , app2 ] linux:test: stage: test script: echo "Testing linux..." parallel: matrix: - PROVIDER: [ aws , gcp ] STACK: [ monitoring , app1 , app2 ] needs: - job: linux:build parallel: matrix: - PROVIDER: [ '$[[ matrix.PROVIDER ]]' ] STACK: [ '$[[ matrix.STACK ]]' ] 이 예시는 모든 linux:build 및 linux:test 작업 간에 1:1 의존성 매핑을 생성합니다: linux:test: [aws, monitoring] 은 linux:build: [aws, monitoring] 에 의존합니다. linux:test: [aws, app1] 은 linux:build: [aws, app1] 에 의존합니다. 동일한 사항이 모든 6개의 parallel:matrix 값 조합에 적용됩니다. matrix. 표현식을 사용하면 각 Matrix 조합을 수동으로 지정할 필요가 없습니다. Matrix 표현식은 현재 작업의 Matrix 구성에서만 식별자를 참조합니다. YAML 앵커를 사용하여 parallel:matrix 구성 재사용 # YAML 앵커 를 사용하여 복잡한 parallel:matrix 구성과 의존성이 있는 여러 작업에서 parallel:matrix 구성을 재사용할 수 있습니다. 예를 들어: stages: - compile