Microsoft Developer Korea - Github Actions 영상을 참고하고 기록. 영상에서는 Node.js 프로젝트를 예시로 함.
목표 : Github Actions 워크플로우를 내 입맛에 맞게 작성할 수 있다.
<요구 사항 3가지>
- OS 종류와 Node 버전이 다양해요. → 빌드 매트릭스 이용하기
- 빌드할 때마다 테스트를 실행해서 불편해요. → 템플릿 변경해서 빌드 테스트 분리하기
- 다른 Job에서 빌드 아티팩트 접근이 안돼요. → Built-in 스토리지 이용하기
1. OS 종류와 Node 버전이 다양해요.
여러 타겟으로 동시에 빌드한다! → 매트릭스 빌드
여기에서의 매트릭스는 행렬! 예를 들어, Windows, Linux 버전에서 Node 12버전과 Node 14버전을 돌려야 할 때,
Windows | Linux | |
Node 12.x | ||
Node 14.x |
다음과 같이 행렬식으로 빌드하는 것을 매트릭스 빌드라고 한다. 각 경우의 수에 맞게 빌드 아티팩트를 하나씩 만들어 내는 것.
name: Node.js CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
on: [ubuntu-latest, windows-2016] # OS 추가
node-version: [12.x, 14.x] # Node 버전 하나 빼기
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm run build --if-present
- run: npm test
2. 테스트할 때마다 빌드하나요? 시간이 너무 오래 걸려요...
Before : 각 버전의 Node.js 마다 빌드가 다 따로따로 돌아간다.
→ 빌드 테스트를 분리한다!
→ 테스트에서 빌드 아티팩트가 접근이 안된다는 문제가 생김.
3. 빌드 테스트 분리 후 테스트에서 빌드 아티팩트가 접근이 안돼요! 😨
'STUDY > GIT' 카테고리의 다른 글
[TIL] Github Action으로 DB 연동! - Spring Boot Test 통과 확인 (0) | 2023.08.10 |
---|---|
[TIL] Github Action 3 - Mockito 테스트(O) (0) | 2023.08.03 |
[TIL] Github Action이란? CI/CD에 대해 (0) | 2023.07.28 |
[Git] fork가 아니라 같은 Repo의 Collaborator일 때, Pull Request 방법 기록(레포지토리 파는 사람 / Collaborator) (1) | 2023.07.17 |
[TIL] 포크 저장소와 내 로컬을 동기화하기 (0) | 2023.06.18 |