배포 자동화 도구
Github에 내장된 CI/CD 도구
.github/workflows 디렉토리 - Actions 파일들을 yml 형식으로 작성
▶ 테스트를 통과한 코드만 dev 브랜치와 main 브랜치에 merge 되도록 하여 오류를 방지하고 안정적인 코드가 배포되고 버그를 빠르게 발견
dev 브랜치에 merge 된 경우 gradle test 진행feature/*** 브랜치가 push 된 경우 gradle test 진행▶ main 브랜치에 코드가 통합된 경우 운영 환경에 빠르게 배포할 수 있게 함
main 브랜치에 merge 된 경우 gradle test 실행 main 브랜치의 코드 기준으로 jar파일 생성jar파일을 특정 환경(AWS, GCP 등)에 배포
job으로 구성, Event에 의해 트리거 될 수 있는 자동화 프로세스.github/workflows에 저장push, pull request open, issue open, 특정 시간대 반복(cron) 등의 규칙에 의해 Workflow를 실행(trigger)함on:
push:
branches:
- dev
Github Action Runner 앱이 설치된 VM, Workflow가 실행될 인스턴스runs-on: ubuntu-latest
Runner에서 실행될 여러 step 모음jobs:
deploy:
runs-on: ubuntu-latest
shell script 또는 action steps:
- name: Github Repository 파일 불러오기
uses: actions/checkout@v4
Job을 만들기 위해 여러 Step들을 연결하여 구성 - name: Github Repository 파일 불러오기
uses: actions/checkout@v4
전체 흐름 예시
feature/**브랜치 생성 후test코드를 포함한 수정 작업 완료 후Pull Request생성- (자동화)
Pull Request만들면 해당 브랜치에 대해gradle test수행- test 실패한 경우 test 코드 수정 후 다시
Pull request- test 성공 후 승인 대기
- (자동화) 승인 후
main브랜치에 merge 되면 해당 브랜치를 cloudtype 서버에 배포