Notice
Recent Posts
Recent Comments
Link
반응형
관리 메뉴

쿵야지식떨이

GitHub Actions 적용 (1) - GitHub Actions란? 본문

Infra

GitHub Actions 적용 (1) - GitHub Actions란?

김쿵야 2024. 2. 3. 02:47
반응형

팀 프로젝트를 진행 중 server 파트는 GitHub Actions를 적용하기로 했다. 적용하는 과정과 겪었던 에러를 정리하고 여러 포스트로 나눠서 정리해보려 한다.

 

틀린 내용이 있을 수 있으니 잘못된 내용이 있다면 댓글 부탁드립니다.


GitHub Actions

  • GitHub에서 제공하는 CI/CD를 위한 서비스
  • GitHub 레포지토리에서 CI/CD 결과를 확인하고 관리할 수 있다.
  • YAML 포맷을 사용하여 가독성이 높다.
  • 이미 구현되어있는 많은 액션들을 마켓플레이스에서 쉽게 찾을 수 있어 좀 더 간단하게 CI/CD 플로우를 작성할 수 있다. 
더보기
CI(Continuous Integration) : 테스트, 빌드, Dockerizing, 저장소에 전달하는 것까지 프로덕션 환경으로 서비스를 배포할 수 있도록 준비하는 프로세스(지속적 통합)

CD(Continuous Delivery) : 저장소로 전달된 프로덕션 서비스를 실제 사용자들에게 배포하는 프로세스(지속적 전달)


▪ 작업한 소스 코드를 빌드하고, 저장소에 전달 후 배포까지 하는 과정이다.
 간단히 정리하면 개발의 work flow를 자동화 할 수 있게 도와주는 툴!
 자동으로 어떤 이벤트가 발생했을 때 특정 작업이 일어나게 하거나 주기적으로 어떤 작업들을 반복해서 실행 시킬 수 있다. 

 

GitHub Actions의 구성 요소

Workflow

  • 최상위 개념
  • 하나 이상의 Job으로 구성되고, Event에 의해 예약되거나 트리거 될 수 있는 자동화된 절차
  • Workflow는 YAML 파일에 의해 정의되고, Github Repository의 .github/workflows 폴더 아래에 저장된다. 
  • on 속성을 통해 해당 workflow가 언제 실행될지 정의한다.
  • GitHub에게 YAML 파일로 정의한 자동화 동작을 전달하면, GitHub Actions는 해당 파일을 기반으로 그대로 실행시킨다.

Event

  • Workflow 실행을 트리거하는 저장소의 특정 활동
    • ex) 누군가가 커밋을 repo에 push하거나 pull 요청이 생성 될 때 GitHub에서 활동이 시작될 수 있다.

Job

  • 독립된 환경에서 돌아가는 하나의 처리 단위
  • Job은 여러 Step으로 구성되고, 단일 가상 환경에서 실행된다.
  • 하나의 workflow에는 여러 개의 Job을 정의할 수 있다.
    • 각각의 Job은 다른 Job들과는 별개의 독립적인 환경에서 실행된다.
  • jobs 속성을 통해 workflow가 실행되면 수행할 Job을 정의하며 runs-on과 steps는 필수로 정의해야 한다.
    • runs-on : job을 실행할 환경을 정의

Step

  • Job 안에서 순차적으로 실행되는 프로세스 단위
  • 각 step들은 script, 명령어 또는 action을 실행할 수 있다.

Action

  • workflow의 가장 작은 빌드 단위
  • Job을 구성하기 위한 step들의 조합으로 구성된 독립적인 명령이다. 
  • action을 구성하기 위해서 레포지토리와 상호 작용하는 커스텀 코드를 만들 수도 있다.
  • 사용자가 직접 커스터마이징 하거나 마켓 플레이스에 있는 action을 가져다 사용할 수도 있다.
반응형