CI/CD

진영민·2022년 11월 23일
0

잡다한 상식

목록 보기
10/22

CI

continuous Integration
지속적 통합

빌드/테스트 자동화 과정이다.
애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 공유되어 레포지토리에 통합되는 기능을 의미한다.

소스/버전 관리 시스템에 대한 변경 사항을 정기적으로 커밋하여 모든 사람에게 동일 작업 기반을 공유하는 것으로 시작한다.

커밋할 때마다 빌드와 일련의 자동 테스트가 이루어져 동작을 확인하고 변경으로 인해 문제가 생기는 부분이 없도록 보장한다.

CD

continuous Deployment 또는 continuous Delivery
지속적 배포
코드 변경이 파이프라인의 이전 단계를 모두 성공적으로 통과하면 개입 없이 해당 변경 사항이 프로덕션에 자동으로 배포된다.

간단한 코드 변경이 정기적으로 커밋되고, 자동화된 빌드 및 테스트 프로세스를 거치며 다양한 사전 프로덕션 환경으로 승격, 문제가 없으면 최종적으로 배포된다.

CI/CD 적용 전

  1. 개발자들이 코드를 수정한다.
  2. 각자의 브랜치에 코드를 push한다.
  3. 각자의 코드를 git에 올리고 Integration한다.
  4. 에러가 발생하면 어느 부분에 에러가 있는지 디버깅하고 코드를 수정한다.
  5. 에러가 해결되면 배포를 시작한다.(직접)

CI/CD 적용 후

  1. 개발자들이 코드를 수정한다.
  2. 각자의 브랜치에 코드를 push한다.
  3. CI서버에서 알아서 Build, Test, Lint를 실행하고 결과를 발송한다.
  4. 결과를 전송받고, 에러가 난 부분이 있다면 이를 수정한다.
  5. master 브랜치에 코드를 merge하고 Build, Test가 정상적으로 수행되었다면 CI서버에서 Deploy과정을 수행한다.

CI/CD 종류

Jenkins
CircleCI
TravisCI
Github Actions
Bamboo

Github actions

Workflow

레포지토리에 추가할 수 있는 일련의 자동화된 커맨드 집합
하나의 Job으로 구성되어 있으며, Push나 PR과 같은 이벤트에 의해 실행될 수 있고, 특정 시간대에 실행될 수 있다.
.github/workflows디렉토리에 YAML형태로 저장한다.

Event

Workflow를 실행시키는 Push, Pull Request, Commit등의 특정 행동을 의미한다.
Repository Dispatch Webhook를 사용하면 github 외부에서 발생한 이벤트에서도 Workflow를 실행시킬 수 있다.
Github Actions 공식 문서

Job

실행되는 여러 Step의 집합
workflow내의 Job은 독립적으로 실행되지만 필요에 따라 의존 관계 설정 가능

Step

커맨드를 실행할 수 있는 각각의 Task

Action

Job을 만들기 위해 Step을 결합한 독립적인 커맨드, 재사용이 가능한 Workflow의 가장 작은 단위의 블럭

Runner

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

profile
코린이

0개의 댓글