종식당
현대오토에버 모빌리티 SW 스쿨 웹/앱 GitHub Actions 본문
✅ CI/CD란?
CI/CD란 Continuous Integration, Continuous Deployment라는 의미를 가지고 있다. 말이 너무 어렵다. 쉽게 표현하자면 CI/CD는 테스트(Test), 통합(Merge), 배포(Deploy)의 과정을 자동화하는 걸 의미한다.
CI/CD를 왜 배우는 걸까?
서비스를 운영하다 보면 새로운 기능을 추가하는 일이 많아진다. 새로운 기능에 대한 코드를 작성한 뒤에 Commit을 찍는다. 그런 뒤에 브랜치에 Merge를 하고 배포를 한다. 배포를 할 때 직접 컴퓨터 서버(ex. AWS EC2)에 접속해서 새로운 코드를 다운로드하여 실행시켜주어야 한다.
이 과정을 코드의 수정이 일어날 때마다 반복하기란 너무 귀찮은 일이다. 그래서 이런 반복적인 과정을 자동화시키기 위해 CI/CD를 배우는 것이다.
GitHub Actions
깃허브 액션은 깃허브에서 제공하는 서비스이며 레포지토리에 특정 이벤트가 발생하면 특정 작업을 하거나, 주기적으로 특정 작업을 반복할 수 있게한다. 누군가 코드를 작성해서 깃허브에 업데이트하면 해당 코드에 문제가 없는지 자동으로 코드를 빌드, 테스트한 이후에 배포까지 할 수 있다.
먼저 프로젝트를 진행할 폴더를 하나 만들고 깃허브 레포지토리를 하나 만들어 연결해준다.
프로젝트 최상단에. github디렉터리를 하나 만들고 아래 workflows디렉터리 또한 만들어준다. 그리고 그 아래. yml파일을 만들어 스크립트를 작성해 줄 거다. 이때 디렉터리의 오타가 나면 오류가 나니 오타 나지 않게 주의해 주자!
1. on: push: branches: ["main"]
- 설명: 이 부분은 워크플로우가 언제 실행될지를 정의한다. 여기서는 main 브랜치로의 push 이벤트가 발생할 때 이 워크플로우가 실행된다.
2. jobs:
- 설명: 워크플로우에서 실행할 작업들을 정의하는 섹션이다.
3. build:
- 설명: 작업 이름은 testback build & deploy이며, ubuntu-latest 환경에서 실행된다.
4. steps:
- 설명: 작업의 각 단계가 정의된다.
이제 steps에서는 name에 작업의 이름을 적어주면 되고 run에 실행할 작업의 내용을 적어주면 된다. 위에 echo문 들은 간단하게 문자열을 출력해 보았고 $GITHUB_SHA를 통해 현재 커밋의 SHA 해시값, $GITHUB_REPOSITORY를 통해 owner/repository 형식으로 GitHub 리포지토리의 이름을 출력했다.
push를 진행할 때마다 커밋 메시지와 함께 workflows들이 쌓이는 것을 확인할 수 있다.
초록색 체크가 뜨면 워크플로우에서 실행한 작업들이 완료가 되었다는 뜻이다.
눌러서 들어가면 각 step들이 어떻게 실행되는지 를 볼 수 있으며 디테일한 내용 또한 볼 수 있다.
- 마무리
github actions에 대해서 이번 수업을 통해 처음 배우고 간단하게 작업해 보았는데 다음에는 이를 통해 직접 CI/CD까지 해보고 이에 대해 정리해서 올릴 계획이다.