종식당

현대오토에버 모빌리티 SW 스쿨 웹/앱 GitHub Actions 본문

카테고리 없음

현대오토에버 모빌리티 SW 스쿨 웹/앱 GitHub Actions

종식당 2024. 10. 10. 16:32
728x90
반응형

✅ 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까지 해보고 이에 대해 정리해서 올릴 계획이다.
728x90
반응형