GitHub Actions CI/CD 작업
안녕하세요. 이번에 gitHubActions 을 이용해서 CI/CD 작업 통해 소프트웨어 개발 및 배포 과정을 자동화 해서 효율적으로 관리 하기 위해 준비 해보았습니다.
이번에 CI/CD 툴로는 GitHubActions 을 사용 할 예정이고 배포 하고자 하는 프로젝트는 간단한 API 서버인 Spring Boot 로 구성 할 예정입니다.
CI/CD 통해 클라우드 서비스인 AWS EC2에 배포 하고자 합니다.
여기까지 간단하게 전체 FLOW 를 설명 드렸는데요. 하나하나 진행 할때 마다 자세하게 설명 하도록 하겠습니다. 우선 먼저 GitHubAction 에 대해 간단한 사용법을 소개 하고자 합니다.
간단한 GitHub Actions 맛보기 - 첫번째
우선 최상의 경로에서 ‘.github/workflows’ 디렉토리를 생성 합니다.
github Action 을 실행하기 위해서는 ‘.github/workflows’ 내에 특정 yaml 파일이 존재해야지 작동 하게 됩니다.
‘test.yaml’ 이라는 파일을 생성해서 이미지와 보이는 것 처럼 구성 해놓습니다.
아래는 각각 명령어에 대한 세부 설명을 코드와 함께 추가 하도록 하겠습니다.
1 | name: test # github Actions 시각화 하기위한 네임밍 입니다. |
default 브랜치인 ‘main’ 에 작업 후 git push 하도록 해보자
작업 했던 GitHub 프로젝트 페이지에 접속 후 상단 메뉴 중 ‘Action’ 메뉴를 클릭 하면 GitHub Action 을 실행 되는 것을 확인 할 수 있습니다.
시간이 지나면 Job 에서 정의 했던 내용이 실행이 완료 된것을 확인 할 수 있습니다.
간단한 GitHub Actions 맛보기 - 두번째
1 | name: cicd-V1 |
‘.github/workflows’ 디렉토리에서 기존에 추가되었던 ‘test.yaml’ 파일을 test 폴더를 추가해서 이동시키고 ‘cicd-V1.yaml’ 파일을 추가해서 상단 코드를 추가 하도록 합니다.
이번 파트 이후에 CI 에 대해서 자세히 설명 드리겠지만 간단하게 GitHub Actions 을 이용해서 Spring Boot 프로젝트를 checkout 받고
‘build’ 실행해서 정상적으로 TEST 코드 진행 되는지 체크 하고자 합니다.
1 | @SpringBootTest |
spring boot 프로젝트 내에 있는 TEST 코드 입니다. 일부러 성공을 시켜서 코드를 작성 하도록 합니다.
작성이 완료 되면 ‘main’ 브랜치를 푸쉬 하도록 합니다.
푸쉬를 하게 된다면 ‘cicd-V1.yaml’ 파일에 기재했던 job 을 실행 하게 됩니다. Checkout Action 으로 코드를 내려 받고
1 | uses: actions/setup-java@v4 |
설정한 java -version 과 vender 사에 맞는 jdk를 다운 받습니다. 그런 다음 Github 캐시에 캐싱하여 이후 에는 동일한 명령어를 실행시 더 빠르게 다운받을 수 있도록 해줍니다.
1 | - name: Grant execute permission for gradlew |
spring boot 프로젝트가 있는 ‘springboot-CICD’ 폴더로 이동 한 다음 ‘gradlew’ 를 실행할 수 있는 권한을 추가 (리눅스의 명령어) 추가 후 build 을 실행 하도록 합니다.
1 | @SpringBootTest |
이렇게 CI 가 성공으로 나타나는 것을 확인 할 수 있습니다.
만약에 TEST 코드를 일부러 실패하도록 해서 github actions 을 실행 하고자 하면
TEST 코드가 실패로 인해 CI 가 실패 한것을 확인 할 수 있습니다.
Copyright 201- syh8088. 무단 전재 및 재배포 금지. 출처 표기 시 인용 가능.