kim-kiwon / yoriking-joriking-be

요리킹 조리킹 BE
0 stars 0 forks source link

Github action CI/CD 구축 #3

Closed kim-kiwon closed 1 year ago

kim-kiwon commented 1 year ago

작업내용

Github Action 활용 CI/CD 구축

image
  1. Github Action) 특정 브랜치로 체크아웃을 수행해 Github 의 코드를 가져온다.
  2. Github Action) Gradle Build 를 위한 Jdk 를 설치한다.
  3. Github Action) Github 코드 내의 gradlew에 실행권한을 부여한다.
  4. Github Action) Gradle build 를 수행해 실행 가능한 jar를 만든다.
  5. Github Action) Aws CLI 를 통해 CodeDeploy 와 S3 에 접근할 것이므로. IAM 계정의 엑세스키를 통해 권한을 얻는다.
    • Access 키는 Github Secrets 에 보관
  6. Github Action) Aws CLI로 CodeDeploy 어플리케이션에게 코드를 압축해 S3로 업로드할 것을 명령한다.
    • CodeDeploy App) appspec.yml 경로 기준 포함되는 코드들을 압축해 S3로 업로드한다.
  7. Github Action) Aws CLI로 CodeDeploy 어플리케이션에게. 특정 서버그룹에 특정 S3 의 zip 파일을 배포할 것을 명령한다.
    • CodeDeploy App) 특정 서버그룹에 해당하는 CodeDeploy Agent 들에게 특정 S3의 zip 파일을 땡겨가서. appspec 에 명시된 곳에 압축해제하라고 명령한다.
    • CodeDeploy Agent ) zip 파일을 땡겨와서 서버에 압축해제한다.
    • CodeDeploy Agent ) appspec.yml 에 명시된 permission 와 hooks 등을 수행한다.
      • hook 의 스크립트에서 실제 배포가 일어난다.


멀티모듈과 GithubAction & CodeDeploy

[ Github Action ]

[ appspec.yml ]

image