전략 행렬 (Strategy Matrix) 을 포함하도록 워크플로 수정
strategy 키워드는 빌드 행렬 (build matrix) 을 구성하는 데 사용됩니다. 여기서는 단일 키 node-version을 가진 행렬을 정의할 것입니다.
github-actions-demo의 GitHub 저장소 페이지에서 녹색 Code 버튼을 클릭합니다.
- HTTPS 탭이 선택되었는지 확인하고 URL 을 복사합니다. URL 은
https://github.com/your-username/github-actions-demo.git과 유사해야 합니다.
- LabEx 환경에서 터미널을 엽니다. 기본 경로는
~/project입니다.
git clone 명령어를 사용하여 저장소를 다운로드합니다. your-username을 실제 GitHub 사용자 이름으로 바꾸십시오.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git
예시 출력:
Cloning into 'github-actions-demo'...
remote: Enumerating objects: X, done.
remote: Counting objects: 100% (X/X), done.
remote: Total X (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (X/X), done.
- 클론된 저장소 디렉토리로 이동합니다:
cd ~/project/github-actions-demo
-
WebIDE 편집기를 사용하여 새 워크플로우 파일 .github/workflows/matrix-build.yml을 생성합니다. 이 파일은 왼쪽 파일 탐색기에서 project/github-actions-demo/.github/workflows/ 아래에서 찾을 수 있습니다.
-
기본 워크플로우 구조를 생성하는 것으로 시작합니다. 워크플로우 이름과 트리거를 추가합니다:
name: Matrix Build
on: [push]
- 기본 빌드 작업 구조를 가진
jobs 섹션을 추가합니다:
jobs:
build:
runs-on: ubuntu-latest
- 행렬 전략을 추가합니다. 이것이 여러 Node.js 버전을 사용하여 작업을 실행할 수 있게 하는 핵심 부분입니다:
strategy:
matrix:
node-version: [18, 20, 22]
이는 세 가지 값을 가진 node-version이라는 행렬 변수를 정의합니다. GitHub Actions 는 각 값에 대해 별도의 작업을 생성합니다.
steps 섹션을 추가합니다. 먼저, 체크아웃 단계를 추가합니다:
steps:
- uses: actions/checkout@v4
- Node.js 설정 단계를 추가합니다. 현재 행렬 값을 참조하기 위해
${{ matrix.node-version }}을 사용하는 방식에 주목하십시오:
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- 종속성을 설치하는 단계를 추가합니다:
- name: Install dependencies
run: npm install
- 아티팩트 디렉토리를 생성하는 빌드 단계를 추가합니다:
- name: Build project
run: |
mkdir dist
echo "This is the build artifact" > dist/build.txt
- 테스트 단계를 추가합니다:
- name: Run tests
run: npm test
- 마지막으로, 빌드 아티팩트 업로드 단계를 추가합니다. 각 아티팩트를 고유하게 만들기 위해 아티팩트 이름에 행렬 버전이 포함되는 방식에 주목하십시오:
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build-assets-${{ matrix.node-version }}
path: dist
이제 전체 파일은 다음과 같이 보일 것입니다:
name: Matrix Build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20, 22]
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
- name: Build project
run: |
mkdir dist
echo "This is the build artifact" > dist/build.txt
- name: Run tests
run: npm test
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build-assets-${{ matrix.node-version }}
path: dist
설명 (Explanation)
strategy: 빌드 전략을 정의합니다.
matrix: 행렬 변수들을 정의합니다.
node-version: 우리가 선택한 변수 이름입니다. 여기에 값의 배열 [18, 20, 22]을 할당했습니다. GitHub Actions 는 build 작업을 각 값에 대해 세 번 실행합니다.
${{ matrix.node-version }}: 이 구문은 단계 (step) 내에서 현재 행렬 값에 접근할 수 있게 해줍니다.
변경 사항을 저장하십시오 (Ctrl+S 또는 Cmd+S).