////
Search
Duplicate
🤿

CI/CD , Github Action

생성일
2022/06/27 07:33
태그
Github Action 은 github에서 공식적으로 제공하는 CI/CD 툴, 다시 말해 개발의 work flow를 자동화할 수 있게 도와주는 툴이다.
CI/CD란?
CI 는 Continuous Integration(지속적 통합), CD는 Continuous Delivery(지속적 전달)의 줄임말이다.
CI : 테스트, 빌드, Dockerizing, 저장소에 전달하는 것까지 프로덕션 환경으로 서비스를 배포할 수 있도록 준비하는 프로세스
CD : 저장소로 전달된 프로덕션 서비스를 실제 사용자들에게 배포하는 프로세스

작업한 소스 코드를 빌드하고, 저장소에 전달 후 사용자에게 배포하는 과정을 통상적으로 CI/CD라고 부른다.

Github Action의 코어 개념
Workflow
자동화된 전체 프로세스. 하나 이상의 job으로 구성, Event에 의해 예약되거나 트리거 될 수 있는 자동화된 절차를 말한다.
Workflow 파일은 YAML으로 작성되고, Github Repository의 .github/workflows 폴더 아래에 저장된다. github에게 YAML 파일로 정의한 자동화 동작을 전달하면, github action은 해당 파일을 기반으로 그대로 실행시킨다.
Event
Workflow를 트리거하는 특정 활동이나 규칙, 예를 들어, 누군가가 커밋을 레포지터리에 푸시하거나 풀 요청이 생성될 떄 Github에서 활동이 시작될 수 있다.
Job
job은 여러 step으로 구성되고, 단일 가상환경에서 실행된다. 다른 job에 의존 관계를 가질 수도 있고, 독립적으로 병렬로 실행될 수도 있다.
Step
job 안에서 순차적으로 실행되는 프로세스 단위. step에서 명령을 내리거나, action을 실행할 수 있다.
Action
job을 구성하기 위한 step들의 조합으로 구성된 독립적인 명령. workflow의 가장 작은 빌드 단위이다. workflow에서 action을 사용하기 위해서는 action이 step을 포함해야한다. action을 구성하기 위해서 레포지토리와 상호작용하는 커스텀 코드를 만들 수도 있다. 사용자가 직접 커스터마이징하거나, 마켓플레이스에 있는 action을 가져다 사용할 수도 있다.
Runner
Github action은 event, job, step을 정의하기 위해 YAML 파일을 사용한다.workflow를 구성할 레포지토리에 .github/workflows 디렉토리 안에 test-github-actions.yml 형태로 파일을 생성한다.