공부기록

[이론] CI/CD - 1

jhs0129 2023. 8. 28. 17:53
320x100
반응형
320x100

CI/CD 간단 지식

CI란

CI(Continuos Integration) 지속적 통합

자동화된 빌드 및 테스트가 수행된 후 개발자에 의해 변경된 코드를 Repository로 Merge를 진행하는 개발 방식

핵심 목표 : 버그를 신속하게 찾아 해결 & 품질 개선 & 업데이트 검증 & release 시간 단축

CD란

CD(Continuous Deployment) 지속적 배포
or CD(Continuos Delivery) 지속적 제공 (상호 교환하여 사용)

CD(Continuos Delivery)

애플리케이션에 적용한 변경 사항을 버그 테스트를 거쳐 Repository에 자동으로 업로드되는 것

CD(Continuous Deployment)

변경 사항을 Repository에서 프로덕션 환경(Cloud환경, On-Premises)까지 자동으로 릴리스하는 것

주의 유효한 코드를 Repository에 자동으로 Release -> 효과적으로 CD Process를 실현하기 위해서는 CI가 먼저 구축되어 있어야 함

CI 구축

우선 CI/CD에 대한 구축은 Github Action을 사용하여 구축을 할 예정이다

구축 이전에 간단하게 Github Action에 대해서 알아보자

반응형

Github Action

자동으로 build, test, deployment를 가능하게 해주는 CI/CD(여기서의 CD는 Continuos Deployment의 개념) 플랫폼

WorkFlow라는 Github Action이 제공해주는 템플릿을 작성하여 원하는 방식으로 구성을 할 수 있다

구성 요소

  • WorkFlow

하나 이상의 Job들을 실행시킬 수 있는 자동화된 process 설정 파일(yaml 형식)

항상 Repository의 root path 하위에 .github/workflows 디렉토리 아래에 작성이 되어야 함

물론 여러개의 WorkFlow를 작성 가능

  • Events

WorkFlow를 동작 시킬 Repository에서 일어나는 특정 동작

이번에 실습을 할 때는 Pull RequestPush를 사용할 것이다

Github Action Events에 모든 예시들이 있으므로 필요할 때마다 찾아서 사용하면 되겠다

  • Jobs

같은 Runner에서 실행 시킬 workflow파일 안에 있는 step들의 집합

shell script이거나 action을 통해 순서에 따라 독립적으로 실행된다

같은 Runner에서 실행이 되므로 이전에 만들어진 데이터들을 같이 공유해서 사용이 가능하다

  • Actions

복잡한 반복적인 task들을 실행 시켜줄 custom한 application

많이 제공해주는 것이 있어 우선은 제공되는 것들을 사용해도 충분하다고 생각한다

만일 추가적으로 필요하다면 Github Action Action를 참고해서 만들어 보자

이번 실습에서는 actions/checkout@v3, gradle/gradle-build-action@v2 등을 사용할 것이다

  • Runners

WorkFlow를 동작 시킬 내부 서버

Github에서는 Ubuntu, Windows, macOS 3가지를 제공

320x100
반응형