CI/CD에 대해 공부해보자 - 1. Github Action
학교 팀플을 하던 중.. 웹 사이트를 만들고 배포를 할 일이 생겼는데, 내 머리 속에는 아무것도 들어있지 않아서 무작정 youtube랑 구글을 뒤져서 공부하려고 한다! (참고: 드림코딩 youtube)
일단 CI/CD가 무엇인지 알아보자
CI(continuous integration), 지속적 통합: 개발을 할 때, 개개인이 쓴 코드를 주기적으로 merge 한 뒤에 build 와 test를 자동적으로 해주는 것을 말한다. (때문에 코딩을 할 때 개개인이 unit한 부분을 건드려줘야 한다.)
CD(continuous deployment), 지속적 배포: CI과정을 마친 코드를 release까지 자동적으로 해주는 것. continuous delivery도 있는데 이건 release 준비까지 자동으로 한 뒤, 사람이 수동으로 확인하는 과정을 거쳐서 배포하는 것을 말한다.
CI/CD의 flow는 이렇다 (출처: 드림코딩 youtube)
근데 배포가 정확하게 무슨 말일까? 배포는 쉽게 말해서 다른 사용자들이 우리가 개발한 웹 페이지를 인터넷 상에서 접근 가능하게 만드는 것이라고 한다. (ip 주소 할당)
그래서 오늘은 CI/CD를 제공하는 많은 서비스 중에서도, 그래도 평소에 많이 접한 git에서 제공하는 github action을 써보려고 한다. (참고: 어쩐지 오늘은(?), zzsza.github.io)
Github action이란? 일단 공식문서를 뒤져봤다
그렇다고 한다. 그러면 어떻게 CI/CD가 이루어지는지 보자. (5가지 components)
Events: workflows를 실행시키게 되는 event를 말한다. (triggered by)
Runners: 실행 환경(virtual machine?, container처럼 동작한다고 한다)
Workflows: 내 repository에 .github/workflows에 있는 .yml에 의해 정의되는 configurable automated process, 하나하나의 step인 job을 하나 또는 여러개 실행하게 된다. 하나의 repository가 다양한 workflows를 가질 수 있다.
Jobs: workflow의 하나의 step. 각각의 job이 shell script나 github에서 제공하는 action을 실행한다. Jobs의 dependencies도 설정할 수 있는데, default는 parallel(동시에) 실행되는 것이다.
Actions: github에서 제공하는 custom application.
아직 yml파일을 한번도 작성해보지 못한 감자로써, 쉽지않은 과정이다.. 이번 팀플은 django를 이용한 웹 사이트 만들기이기 때문에 더 찾아보았는데
python manage.py test위의 shell 명령어를 job에 넣어주면 된다고 한다! 저게 뭐냐면..
우리가 Django를 쓸 때 test.py에 정의되어 있는데로 테스트를 해주는 명령어라고 한다.
이 포스트는 여기까지로 하고, 다음 포스트에는 직접 해보는 걸로...
댓글
로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다.