Skip to content

Latest commit

 

History

History
82 lines (68 loc) · 2.58 KB

README.md

File metadata and controls

82 lines (68 loc) · 2.58 KB

Spring Boot Blog Project

프로젝트 소개

해당 글은 아래 도서의 내용을 참고하며 정리한 개인학습용 글입니다. 
스프링 부트 3 벡엔드 개발자 되기 - 자바 편, 신선영

skill

  • Spring Boot, AWS, Github Action

주요 기능

  • 게시글 등록, 수정, 삭제 기능 구현
  • Oauth2 인증 : 구글 소셜 로그인, JWT 토큰 인증
  • AWS 배포 : Elastic Beanstalk 로 배포
  • CI/CD : AGithub Actions를 이용하여 배포전 과정 자동화

화면

image

ci/cd yml 파일

# 워크플로의 이름 지정
name: CI/CD

#워크 플로가 시작될 조건 지정
on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest #실행환경 지정
    #실행 스텝 지정
    steps:
      - uses: actions/checkout@v3

      - uses: actions/setup-java@v3
        with:
          distribution: 'corretto'
          java-version: '17'

      - name: Grant execute permission for gradlew
        run: chmod +x gradlew

      - name: Build with Gradle
        run: ./gradlew clean build

      # 현재 시간 가져오기
      - name: Get current time
        uses: josStorer/get-current-time@v2.0.2
        id: current-time
        with:
          format: YYYY-MM-DDTHH-mm-ss
          utcOffset: "+09:00"

      # 배포용 패키지 경로 저장
      - name: Set artifact
        run: echo "artifact=$(ls ./build/libs)" >> $GITHUB_ENV

      # 빈스토크 배포
      - name: Beanstalk Deploy
        uses: einaregilsson/beanstalk-deploy@v20
        with:
          aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          application_name: 
          environment_name: 
          version_label: github-action-${{ steps.current-time.outputs.formattedTime }}
          region: ap-northeast-2
          deployment_package: ./build/libs/${{ env.artifact }}
  • aws_access_key: AWS에 접근하기 위한 액세스 키
  • aws_secret_key: AWS에 접근하기 위한 비밀 키
  • application_name: 배포할 애플리케이션의 이름
  • environment_name: 배포할 환경의 이름
  • version_label: 배포 버전을 라벨링합니다. 현재 시간으로 생성된 라벨을 사용합니다.
  • region: AWS 리전 (여기서는 ap-northeast-2, 즉 서울 리전)
  • deployment_package: 배포할 패키지의 경로. 앞서 저장한 artifact 환경 변수를 사용하여 최근 빌드 결과를 지정

현재 aws 비용문제로 배포 중단상태입니다.