[typescript] 타입스크립트와 함께 사용하는 CI/CD (지속적 통합 및 배포) 파이프라인 예시

지속적 통합 (CI, Continuous Integration) 및 배포 (CD, Continuous Deployment) 파이프라인을 구축하면 애플리케이션의 품질을 높이고, 배포 주기를 단축할 수 있습니다. 이 글에서는 타입스크립트 프로젝트를 위한 간단한 CI/CD 파이프라인 예시를 소개하겠습니다.

1. 저장소 설정

우선, GitHub 같은 버전 관리 시스템을 사용하여 타입스크립트 프로젝트를 저장합니다. 저장소에는 소스 코드뿐만 아니라 Dockerfile.github/workflows 디렉토리를 포함해야 합니다.

2. CI/CD 구성

2.1. CI 설정

GitHub Actions를 사용하여 CI를 구성합니다. 이를 위해서는 프로젝트 루트 디렉토리에 .github/workflows 디렉토리를 생성하고, 그 안에 ci.yml 파일을 만듭니다.

다음은 간단한 CI 구성 파일의 예시입니다.

name: CI

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'

      - name: Install dependencies
        run: npm ci

      - name: Build
        run: npm run build

      - name: Run tests
        run: npm test

위의 설정은 main 브랜치로의 push 이벤트 발생 시, Node.js 환경을 구성하고 종속성을 설치한 뒤, 프로젝트를 빌드하고 테스트를 진행하는 간단한 CI 파이프라인입니다.

2.2. CD 설정

CI가 성공하면 CD 파이프라인이 실행되어 애플리케이션을 배포합니다. 간단한 CD 파이프라인 설정 파일 cd.yml을 만듭니다.

name: CD

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Deploy to Kubernetes
        run: |
          echo $KUBE_CONFIG_DATA | base64 --decode > kubeconfig
          kubectl apply -f manifests/app.yaml

위 설정에서, CD 파이프라인은 CI 빌드 작업 build에 의존하며, main 브랜치로 푸시될 때 실행됩니다. 빌드를 성공적으로 완료한 후에는 Kubernetes 클러스터에 애플리케이션을 배포합니다.

3. 실행

위와 같이 CI/CD 파이프라인을 설정한 뒤에는 GitHub 저장소에 코드를 푸시하면 자동으로 이 파이프라인이 실행됩니다.

CI/CD 파이프라인을 통해 코드 품질을 유지하고, 배포 프로세스를 자동화할 수 있으며, 이를 통해 효율적인 애플리케이션 개발이 가능합니다.

위 예시는 단순화된 형태이며, 실제 프로젝트에는 보안 및 성능 최적화를 위한 추가적인 설정이 필요할 수 있습니다.

참고 자료: GitHub Actions 문서