IT 관련/CICD

[CICD] Github Action과 CI/CD 파이프라인 설정

insu90 2024. 11. 15. 23:13

CI/CD 파이프라인 구축 단계

1. GitHub Actions 설정

GitHub Actions는 GitHub에 내장된 CI/CD 도구로, 별도의 서버를 설치하지 않고도 자동화된 빌드, 테스트, 배포 등을 설정할 수 있습니다.

1.1 GitHub Actions 워크플로우 파일 만들기

  1. GitHub 저장소에서 .github/workflows라는 폴더를 만들고 그 안에 워크플로우 파일을 생성합니다.

    • 워크플로우 파일 (ci-cd.yml)의 내용은 기본적으로 다음과 같습니다:

 

name: CI/CD Pipeline

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      # 코드 체크아웃
      - name: Checkout code
        uses: actions/checkout@v3

      # Node.js 설치 (예시로 Node.js 사용하는 경우)
      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '16'

      # 의존성 설치
      - name: Install dependencies
        run: npm install

      # 테스트 실행
      - name: Run tests
        run: npm test

      # 배포 (예시로 AWS, Heroku, 등 배포 명령어 추가)
      - name: Deploy to Production
        run: |
          echo "Deploying application"
          # 배포 명령어 추가 (예: AWS CLI, Heroku, 등)

위 예시는 Node.js 애플리케이션을 대상으로 작성된 CI/CD 파이프라인의 예입니다. 실제 프로젝트에 맞게 의존성 설치, 테스트 실행, 배포 과정은 달라질 수 있습니다.

1.2 파일 설명

  • name: 워크플로우의 이름을 설정합니다.
  • on: 워크플로우가 트리거될 이벤트를 설정합니다. 예를 들어, push가 main 브랜치에 푸시될 때 워크플로우가 실행됩니다.
  • jobs: 여러 작업들을 정의할 수 있는 블록입니다. 여기서는 build라는 작업을 하나 정의했습니다.
  • steps: 각 작업을 구성하는 단계들입니다. 코드 체크아웃, 의존성 설치, 테스트 실행, 배포 등이 포함됩니다.

1.3 코드 풀

  • 위 내용을 VScode의 my-project로 pull 해줍니다.

git pull origin main

이제 readme1.txt 파일을 my-prject안에 생성하고 push하겠습니다.

git add .
git commit -m "Initial commit"
git push origin main

 다만 현재 아무내용이 없는 관계로 푸시를 해도 아래와 같이 나옵니다.

이후 구성은 다음에 하도록 하겠습니다.

 

2. CI/CD 파이프라인 구성

2.1 코드 푸시 시 자동 빌드

  • GitHub Actions는 push 이벤트를 감지하여 자동으로 빌드를 수행합니다.
  • npm install 및 npm test는 코드가 푸시될 때마다 자동으로 의존성을 설치하고 테스트를 실행합니다.

2.2 자동 배포

  • 배포가 필요한 경우, 예를 들어 AWS, Heroku, Docker, Kubernetes 등을 사용하여 자동 배포를 설정할 수 있습니다.
    • 예를 들어 AWS에 배포하려면 AWS CLI를 설정하여 aws s3 cp, aws ecs update-service 등의 명령어를 사용합니다.
    • Heroku 배포는 heroku CLI를 사용하여 git push heroku main 명령어를 실행하는 방식입니다.

2.3 환경 설정

  • 배포와 관련된 API 키나 환경 변수를 GitHub의 Secrets에 설정하여 보안을 유지할 수 있습니다.
    • Settings > Secrets and variables > Actions에서 Secrets을 추가합니다.
    • 예시: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, HEROKU_API_KEY 등.

3. CI/CD 파이프라인 동작 확인

3.1 GitHub Actions 실행 확인

  1. 코드를 main 브랜치에 푸시합니다.
  2. GitHub 저장소에서 Actions 탭을 클릭하여 워크플로우가 실행 중인지 확인할 수 있습니다.
    • 진행 중인 빌드가 표시되며, 각 단계별로 성공/실패 여부를 확인할 수 있습니다.

3.2 오류 처리 및 로그 확인

  • 만약 오류가 발생하면, 해당 로그에서 에러 메시지를 확인하고 해결합니다.
  • 예를 들어, npm install 중 오류가 발생한 경우, 해당 오류를 해결한 후 다시 푸시하면 자동으로 파이프라인이 실행됩니다.

'IT 관련 > CICD' 카테고리의 다른 글

[CICD] VS Code와 GitHub 연결 및 커밋, 푸시하기  (1) 2024.11.15