티스토리 뷰
Matrix
• 일련의 작업을 병렬로 실행하거나 다양한 구성을 시도하는 데 사용되는 개념
• 보통 행렬로 나타내어짐
• 각 행은 다른 구성 또는 환경을 나타내고, 각 열은 해당 환경에서 실행되는 작업을 나타냄.
• 각 조합에 대해 작업을 실행하고 결과를 수집하여 전체 파이프라인의 효율성과 안정성을 향상 시킴.
name: Matrix practice
on: push
jobs:
build:
strategy:
matrix:
node-version: [12, 14, 16]
operating-system: [ubuntu-latest, windows-latest]
include:
- node-version: 18
operating-system: ubuntu-latest
exclude:
- node-version: 12
operating-system: windows-latest
runs-on: ${{ matrix.operating-system }}
steps:
- name: Get Code
uses: actions/checkout@v3
- name: Install NodeJS
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install Dependencies
run: npm ci
- name: Build project
run: npm run build
Matrix를 사용하기 전에
해당 작업(job)안에strategy(전략)를 먼저 정의해주어야 한다.
strategy:
matrix:
node-version: [12, 14, 16]
operating-system: [ubuntu-latest, windows-latest]
node-version: [12, 14, 16]
→ 나는 node의 12, 14, 16 버전을 사용하여 소프트웨어를 테스트하고, 호환성을 확인할것 이다.
operating-system: [ubuntu-latest, windows-latest]
→ os종류 ubuntu-latest, windows-latest에서 작업을 실행할것이다.
runs-on: ${{ matrix.operating-system }}
runs-on, 실행 할것인에 어디에서 실행 할것인지 정해주는 부분이다.
strategy의 하위 섹션의 matrix안의 operating-system을 지정하여 unbuntu와 windows모두 실행하도록 한다.
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
마찬가지로
strategy의 하위 섹션의 matrix안의 node-version을 지정하여 12,14, 16버전 모두 실행하도록 한다.
실행 방식은 약간 for문과 비슷하다고 보면 될것 같다.
즉, ubuntu-latest 환경에서 12, 14, 16 노드 버전, windows-latest 환경에서 12, 14, 16 노드 버전을 실행할 것이다. 를 의미한다.
matrix의 include / exclude
include:
- node-version: 18
operating-system: ubuntu-latest
exclude:
- node-version: 12
operating-system: windows-latest
include
→ 해당하는 버전과 운영체제를 포함시킬 것이다.
exclude
→ 해당하는 버전과 운영체제를 제외 시킬것이다.
12 window는 제외 되었고
18 ubuntu는 추가 되었다.
'Git & Github&배포' 카테고리의 다른 글
[CI/CD] Workflow if문사용하기(Cache) (0) | 2024.03.27 |
---|---|
[CI/CD] Workflow Event (0) | 2024.03.21 |
[CI/CD]GitHub Action (0) | 2024.03.20 |
git 명령어 (0) | 2024.03.19 |
AWS EC2 배포하기 (0) | 2024.01.23 |