GitHub Actions를 이용해 프로젝트의 CI 파이프라인을 구축한 과정을 정리해보고자 합니다. develop 및 feature/* 브랜치에서 코드 변경이 발생할 때마다 자동으로 테스트, 빌드, 코드 스타일 검사를 수행하도록 설정했습니다.
.github/workflows/ci.yml 파일을 생성하여 CI 파이프라인의 동작을 정의했습니다.pull_request와 push 이벤트를 대상으로 하여, 코드 변경 시 자동으로 검사가 이루어지도록 설정했습니다.frontend와 backend를 각각 별도 단계로 구성했습니다.name: CI
on:
pull_request:
branches:
- develop
- feature/*
push:
branches:
- develop
- feature/*
jobs:
frontend:
name: Frontend CI
runs-on: ubuntu-latest
steps:
- name: 코드 체크아웃
uses: actions/checkout@v3
- name: Node.js 설정
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'yarn'
- name: 의존성 설치
run: yarn install
working-directory: packages/frontend
- name: Lint 검사
run: yarn lint
working-directory: packages/frontend
- name: Prettier 체크
run: yarn format
working-directory: packages/frontend
- name: 빌드
run: yarn build
working-directory: packages/frontend
backend:
name: Backend CI
runs-on: ubuntu-latest
steps:
- name: 코드 체크아웃
uses: actions/checkout@v3
- name: Node.js 설정
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'yarn'
- name: 의존성 설치
run: yarn install
working-directory: packages/backend
- name: Lint 검사
run: yarn lint
working-directory: packages/backend
- name: Prettier 체크
run: yarn format
working-directory: packages/backend
- name: 빌드
run: yarn build
working-directory: packages/backend
이 초기 구성으로, 코드 변경 시 자동으로 검사와 빌드가 실행되는 기반이 마련되었습니다. 하지만 이후 ESLint, Prettier, Vite와 Rollup 관련 설정 문제로 여러 차례 에러가 발생했습니다.
no-unused-vars 관련 린트 설정@typescript-eslint/no-unused-vars 오류가 발생 '@typescript-eslint/no-unused-vars': 'off',