들어가기에 앞서
CI가 뭔지 모른다면 이해하고 옵시다!
Github Actions이란?
Github Actions이란 개발 환경에서 Pull Request, push등 이벤트가 발생하면 설정해준 자동화 작업을 진행하게 해주는 것을 말합니다!
자동화 작업에 필요한 것
1. CI/CD
제목에서 보이듯이 가장 중요한 것입니다
로컬 또는 원격 저장소에 푸쉬를 하면 Github Action에서 자동으로 빌드 및 배포하는 스크립트를 실행시켜주는 것
2. Testing
Push, Pull Request를 하면 자동으로 테스트를 실행시킬 수 있으며 테스트 여부에 따라 PR을 Open, Close하도록 자동화 할 수 있습니다
Github Actions의 구성 요소
1. WorkFlow
하나 이상의 작업을 실행하는 커스텀 할 수 있는 자동화 프로세스입니다.
workflow는 Repository에 크인한 YAML 파일로 정의되며 이벤트에 의해 트리거될 때 실행되거나 수동으로 정의한 이벤트에 따라 트리거 될 수 있습니다
2. Event(on)
이벤트는 workflow 실행을 트리거하는 것입니다.
프로젝트를 같이 하는 팀원이 Pull 요청을 하거나 Issue를 열 거나 Commit을 하는 특정 이벤트를 말합니다
3. Job
Job은 동일한 프로세스에서 실행되는 workflow의 단계입니다
단계는 순서대로 실행되며 서로 의존적입니다 동일한 프로세스에서 실행되므로
한 단계에서 다른 단계로 데이터를 공유할 수 있습니다
ex) 애플리케이션 빌드단계 -> 빌드한 애플리케이션을 테스트 하도록 만들 수 있습니다
4. steps
Job은 복잡하고 자주 반복되는 작업을 수행합니다 이 단계들을 지정해주는 것이 steps명령어 입니다
예를 들어 Spring Boot Test를 위해 1. 빌드 , 2. 테스트하라 이렇게 단계를 정해줄 수 있습니다
5. runner
러너는 트리거될 때 workflow를 실행하는 서버입니다 각 러너는 한 번에 하나의 작업을 실행할 수 있습니다
각 workflow 실행은 가상 머신에서 실행됩니다
6. actions
Actions란 반복하는 단계를 재사용하기 용이하도록 제공하는 작업입니다
액션은 하나의 코드 저장소 범위 내에서 여러 workflow 간 공유가 가능할 뿐만아니라
Public Code 저장소를 통해 액션을 공유하면 Github상의 모든 코드 저장소에서 사용이 가능합니다
제가 짠 Spring Boot CI 입니다 Aws를 이용해서 우분트로 배포 하는데 참고하시면 이해하기 편할 거 같습니다
'CI & CD' 카테고리의 다른 글
[CI/CD] CI/CD란 무엇인가? (0) | 2023.03.26 |
---|