본문 바로가기

개발정보

GitHub Actions 을 사용한 CI / CD - 이론편

GitHub Actions? 

소프트웨어 개발에서 Pull Request, Push 등 작업을 할 때 마다 자동화된 작업을 할 수 있게 해주는 기능이다. 

 

자동화 작업을 하는 경우는 아래와 같다. 

▶ CI / CD 

    이번에 하게되는 작업으로, 자동으로 Push 후 빌드를 해서 배포를 해주는 작업을 할 것이다. 

    프로젝트를 작업할 때 자동화를 시키면 매번 수동으로 배포하는 일을 할 필요가 없어진다. 

 

Testing 

     Pull Request를 보내면 자동으로 테스트 하는 작업도 구현이 가능하다. 

     그래서 테스트 성공하면 PR을 Open 또는 Close가 가능하다. 

 

Cron Job 

     특정 시간대에 스크립트를 반복해서 실행할 수 있는 기능을 구현할 수 있다. 

 

GitHub Actions의 구성 요소 

GitHub Actions는 Workflow, Event, Job, Step, Action, Runner 요소가 존재한다. 

 

Workflow 

레포지토리에 추가할 수 있는 일련의 자동화된 커맨드 집합이다. 

하나 이상의 Job으로 구성되어 있으며, Push나 PR 같은 이벤트에 의해 실행될 수 있고 특정 시간대에

실행될 수 있다. 

 

빌드, 테스트, 배포 등 각각의 역할에 맞는 Workflow를 추가할 수 있고,

.github/workflow에 yaml 형태로 저장할 수 있다. 

 

Event 

Workflow를 실행시키는 Push, Pull Request, Commit 등의 특정 행동을 의미한다. 

또는 외부에서 발생한 이벤트에 의해서 Workflow를 실행시킬 수도 있다. 

 

Job 

동일한 Runner에서 실행되는 여러 Step의 집합을 의미한다. 

하나의 Workflow 내의 여러개의 Job은 독립적으로 실행되지만 필요에 따라서 순서를 지정할 수 있다. 

 

Step 

커맨드를 실행할 수 있는 Task를 의미하는데, 하나의 Action이 될 수 있다. 

Job 에 있는 각각의 Step은 다양한 Task로 인해서 생성된 데이터를 공유할 수 있다. 

 

Action

Job을 만들기 위해서 Step을 결합한 독립적인 커맨드로, 재사용이 되는 Workflw의 가장 작은 단위 블럭이다. 

 

Runner 

Github Actions Workflow 내에 있는 Job을 실행시키기 위한 애플리케이션이다. 

Github에서 호스팅하는 가상 환경 또는 직접 호스팅하는 가상 환경에서 실행 가능하며, GitHub에서 

호스팅하는 가상 인스턴스의 경우에는 메모리 및 용량 제한이 존재한다. 

 

반응형

'개발정보' 카테고리의 다른 글

Naver Cloud 서버 만들기  (0) 2022.12.06
Docker 이미지 실행 중 발생한 오류 /bin/sh: 1: [npm,: not found  (0) 2022.12.02
비즈니스 로직  (0) 2022.11.25
Service Worker  (0) 2022.11.23
CI / CD  (0) 2022.11.20