본문 바로가기
React/개발

GitHub Actions

by 윤숩 2025. 1. 9.
728x90
728x90

GitHub Actions

: GitHub에서 제공하는 자동화 도구로, CI/CD(Continuous Integration and Continuous Deployment)를 쉽게 설정할 수 있도록 지원합니다. 이를 통해 소프트웨어 빌드, 테스트, 배포 등의 작업을 자동화할 수 있습니다.

 


주요 기능

  1. 자동화 워크플로 생성:
    • push, pull_request, release 등의 이벤트에 반응하여 작업을 자동화.
    • 예: 코드를 푸시하면 테스트 및 빌드가 실행됨.
  2. 유연한 실행 환경:
    • 다양한 OS 및 언어 지원:
      • Ubuntu, Windows, macOS
      • Node.js, Python, Java, Ruby 등 대부분의 언어 지원.
  3. 컨테이너 지원:
    • Docker를 사용하여 원하는 실행 환경을 쉽게 정의.
  4. 커뮤니티 액션:
    • GitHub Marketplace에서 제공되는 수많은 공개 액션을 활용 가능.
    • 예: actions/checkout, actions/setup-node.
  5. 통합 배포:
    • CI/CD 파이프라인에서 직접 AWS, Azure, Google Cloud 등으로 배포 가능.

GitHub Actions의 구성 요소

GitHub Actions는 워크플로(Workflow) 단위로 작업이 실행되며, 주요 구성 요소는 다음과 같습니다:

  1. 이벤트(Events):
    • 워크플로를 트리거하는 GitHub 이벤트.
    • 예: push, pull_request, schedule(크론 작업), release.
  2. 워크플로 파일(Workflow File):
    • .github/workflows 디렉토리에 작성된 YAML 파일.
    • 워크플로 정의 및 실행 내용을 설정.
  3. 잡(Jobs):
    • 워크플로의 구성 단위로, 병렬 또는 순차적으로 실행.
    • 각 잡은 단일 실행 환경에서 동작.
  4. 스텝(Steps):
    • 잡 내부에서 실행되는 작업 단위.
    • 명령어 실행(run) 또는 액션(uses) 사용 가능.
  5. 액션(Actions):
    • GitHub Actions의 재사용 가능한 작업.
    • GitHub Marketplace에서 다양한 액션을 찾아서 사용 가능.

GitHub Actions를 사용하는 이유

  1. 완벽한 통합:
    • GitHub 리포지토리와 직접 연동되므로 별도의 CI/CD 도구를 설정할 필요 없음.
  2. 자동화로 시간 절약:
    • 코드 푸시 후 테스트, 빌드, 배포까지 자동화 가능.
  3. 유연성과 확장성:
    • 원하는 환경과 작업 흐름에 맞게 워크플로를 커스터마이징.
  4. 무료 사용:
    • 퍼블릭 리포지토리는 무료로 사용 가능.
    • 프라이빗 리포지토리도 제한된 무료 실행 시간 제공.

GitHub Actions의 일반적인 사용 예

  1. 코드 푸시 시 자동 테스트:
    • 브랜치에 코드를 푸시하면 테스트와 빌드가 실행.
  2. 코드 병합 시 린트 검사:
    • Pull Request가 생성되면 린트와 테스트 자동 실행.
  3. 배포 자동화:
    • 코드가 병합되면 AWS, Firebase, Netlify 등으로 자동 배포.
  4. 정기 작업 실행:
    • 매일 새벽 데이터 백업 등 주기적인 작업 수행.

GitHub Actions를 시작하려면

  1. 리포지토리 루트에 .github/workflows 폴더를 생성.
  2. 그 안에 YAML 형식의 워크플로 파일을 작성.
  3. 커밋 후 GitHub의 Actions 탭에서 실행 상태를 확인.
728x90
728x90

댓글