From 0036812ba567f6da7b5fe2412982c7321eba648e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 02:12:19 +0900 Subject: [PATCH 01/13] chore: update blank.yml (#31) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * v1 (#28) * feat: 권한 enum * feat: 유저 entity * feat: 사진 entity * refactor: local 환경에서 h2 사용 * feat: Competition 생성 * feat: Exhibition 생성 * feat: Like 생성 * feat: Photo 생성 * refactor: Role 권한 @Getter 사용 * refactor: 소셜 로그인 확장 가능성을 위한 SocialType 추가 * refactor: update 기능을 구분해서 사용 * feat, refactor: UserService 생성 및 회원가입 추가 회원 가입 기능 추가 * feat, refactor: UserRepository 생성 및 회원가입 기능 추가 * feat, refactor: UserController 생성 및 회원가입 API * feat, refactor: 회원가입 dto 생성 * feat, refactor: 회원 정보 수정 dto 생성 * feat, refactor: SpringSecurity 생성 및 구현 * feat, refactor: PasswordUtil 생성 및 구현 * feat, refactor: OAuthAttributes 생성 및 구현 각 소셜에서 받아오는 데이터가 다르므로 소셜별로 데이터를 받는 데이터를 분기 처리하는 DTO 클래스 * feat, refactor: OAuth2UserInfo 생성 및 구현 각 소셜에서 받아오는 데이터가 다르므로 소셜별로 데이터를 받는 데이터를 분기 처리하는 추상 클래스 * feat, refactor: OAuth2LoginSuccessHandler 생성 및 구현 oauth 로그인 성공 처리 handler * feat, refactor: OAuth2LoginFailureHandlerHandler 생성 및 구현 oauth 로그인 실패 처리 handler * feat, refactor: LoginSuccessHandler 생성 및 구현 커스텀 로그인 성공 처리 handler * feat, refactor: LoginFailureHandler 생성 및 구현 커스텀 로그인 실패 처리 handler * feat, refactor: LoginService 생성 및 구현 로그인 service * chore: gitignore 파일 수정 * feat, refactor: 인증처리 이메일을 통한 인증 처리 로직 * feat, refactor: 커스텀 oauth 유저 * feat, refactor: 커스텀 oauth 유저 서비스 * feat: 예외처리 handler * feat: jwt 서비스 access token, refresh token 생성 및 관리 * feat: jwt 발급에 따른 처리 방법 설정 * feat: 카카오 로그인 정보 관리 * chore: application.yml 설정 * chore: application.yml 설정 * chore: application.yml 설정 * chore: application.yml 설정 수정 * comment: 필요없는 주석 제거 * refactor: oauth 사용자 이메일을 받아오도록 변경 * refactor: oauth 사용자 이메일을 받아오도록 변경 * refactor: oauth 사용자 이메일을 받아오도록 변경 * refactor: Security 3.x 이후부 사용할 sevlet 명시 * refactor: 유저 학번 추가 * refactor: 회원가입 api * refactor: 회원 저장 로직 수정 * refactor: oauth 회원 가입 경로 수정 * refactor: Exhibition id 추가 * refactor: Exhibition id 추가 * refactor: Exhibition 추가 * refactor: Exhibition 수정 * feat: 생성, 수정일 entity * feat: Competition 생성 * refactor: validation 추가 * refactor: Competition 추가 * feat: Competition 전체 조회 * feat: CompetitionController 추가 * feat: CompetitionRepository 추가 * feat: CompetitionService 추가 * refactor: 불필요한 개행 제거 * refactor: ouath 로그인 시 추가 정보 url 변경 * feat: 공모전 dto 추가 * feat: admin 권한 부여 * refactor: 학번 초기화 00000000 * refactor: BaseEntity timestamp 설명 추가 * refactor: Exhibition import user_id 수정 * refactor: Exhibition import @ManyToOne 수정 * refactor: Exhibition 마지막줄 수정 * refactor: 어드민 UserController로 분할 * refactor: 회원가입 Controller로 분할 * rename: 패키지 구조 변경 * refactor: 로그인 요청 url 변경 * feat: UserDetails 커스텀 일반 유저와 OAuth2 로그인 유저 나눠서 판단 * feat: UserDetailsService 커스텀 * refactor: 카카오 프로필 추가 * refactor: @AuthenticationPrincipal 커스텀 CustomUserDetails에서 User 바로 받음 * refactor: JpaAuditing 추가 * feat: 카카오 프로필, 권한 변경 메서드 * feat: CustomUserDetails와 UserDetails 어댑터 생성 * refactor: UserController 세분화 * refactor: 권한 변경 로직 변경 * rename: 패키지 구조 변경 * feat: 권한 get 메서드 * feat: 공모전 사진 등록 dto * refactor: 권한 변경 메서드명 변경 * feat: Photo 엔티티 관련 기능 구현 * feat: Photo 엔티티 수정 * feat: 공모전 등록 * refactor: 공모전 생성시 유저와 사진 정보 함께 저장 * refactor: 공모전 전체 조회 dto * refactor: 일반유저 공모전 controller * feat: 공모전 dto * refactor: 공모전 개별 조회 * refactor: 공모전 등록 dto 변경 * feat: 공모전 등록 요청 dto * feat: 유저 로그인 프로필 dto * refactor: 공모전 요청 dto 삭제 * hotfix: Like -> Empathy * feat: Empathy 엔티티 추가 * feat: Empathy Repository 추가 * feat: Empathy 엔티티에 칼럼 밑 연관관계 추가 * refactor: 공모전 등록에 userId 사용으로 변경 * refactor: 컬럼에 id 값 지정 * refactor: 공모전 전체 조회 dto에서 유저 프로필 제거 * refactor: 공모전 controller에서 등록 api 제거 * refactor: 필요없는 공백 제거 * feat: 공모전에 필요한 사진 dto * refactor: 사진 dto로 변경 * refactor: 공모전 조회로직 수정 공모전 조회에 사진 dto 추가 및 로그인 유저를 통한 조회 * refactor: Photo 엔티티 수정 * refactor: Photo api 수정 * feat: Photo dto 생성 * refactor: PhotoService 수정 * refactor: 공모전 등록 dto 수정 * refactor: 공모전 등록 dto 삭제 * refactor: 카카오 로그인창으로 리팩토링 되는 문제 해결 * refactor: Exhibition @Column 추가 * feat: Empathy Controller Service 추가 * refactor: url 수정 * refactor: CompetitionController 불필요한 import 제거 * feat: 수상 작품 dto 생성 * fear: mypage controller 생성 * fear: userpage response dto 생성 * fear: user 프로필 controller 생성 * rename: user 프로필 dto 위치 변경 * feat: 학번으로 조회하는 기능 추가 * feat: userpage 찾는 로직 생성 * refactor: Exhibition photo 추가 * refactor: 공모전 등록 s3 multipart 추가 * feat: 사진 삭제 api * chore: aws 설정 추가 * chore: aws 설정 추가 * chore: aws 설정 추가 * chore: aws 설정 추가 * feat: best 사진 dto 추가 * feat: competition 수정 기능 추가 * rename: CompetitionResponse -> DetailCompetitionResponse * refactor: 필요없는 정보 제거 * refactor: 필요없는 필드값 제거 * refactor: s3 사진 저장 기능 추가 * feat: 사진 삭제 requestDto * rename: 필요없는 필드값 제거 및 dto 명 변경 * refactor: Exhibition photo 수정 * refactor: @RequestPart 로 변경 * refactor: requestParam fileName * rename: 파일 장소 변경 * refactor: 사진 삭제 dto 삭제 * refactor: 수상 작품 수 받기 * refactor: 좋아요 수 추가 및 공감 단방향으로 변경 * refactor: 좋아요 많은 사진 가져오기 * refactor: 좋아요 많은 사진 가져오기 * rename: 메서드명 변경 * feat: 사진 도메인 타입 enum 추가 * refactor: 필요없는 필드 제거 * refactor: 필요없는 필드 제거 * feat: 공모전 수정 요청 dto * feat: 유저 수정 dto에 학번 추가 * feat: 유저 수정 로직 추가 * feat: 유저 수정 api 추가 * refactor: 필드에 final 추가 * refactor: 필드에 final 추 및 유저 정보 수정 로직 추가 * feat: 공감 service 추가 * feat: 공감 repository 추가 * feat: 공감 photoId dto 추가 * feat: 공감 controller 추가 * refactor: 공감 entity builder 패턴 추가 * refactor: Exhibition update 추가 * feat: ExhibitionAllResponse 생성 * feat: ExhibitionController 생성 * feat: ExhibitionDto 생성 * feat: ExhibitionPhotoDto 생성 * feat: ExhibitionRepository 생성 * feat: ExhibitionResponse 생성 * feat: ExhibitionService 생성 * feat: RegisterExhibitionRequest 생성 * feat: UpdateExhibitionRequest 생성 * feat: 공모전 사진 등록 및 사진 수정 * feat: 단일 사진 업로드 * feat: 공감 로직 추가 * refactor: 여러 사진 업로드 로직 변경 처음 여러 사진을 등록하면 사진 제목, 내용은 초기값으로 고정 * refactor: 주석 내용 변경 * feat: 사진이 좋아요가 되어있는 상태인지 확인 * refactor: 초기 사진 등록 * refactor: 필요없는 개행문자 제거 * refactor: final 추가 * feat: 사진 수정 로직 * refactor: 잘못된 url 변경 * refactor: 공감 상태 확인 * feat: 단일 사진 등록 dto * feat: 사진에 공감 기능 추가 * refactor: 여러 사진 등록 시에 제목, 내용은 제외 * refactor: oauth 수정 * feat: 공모전에서 전시회로 이동 api * refactor: 세미콜론 추가 * refactor: 삭제한 import 제거 * feat: 공모전 -> 전시회 * feat: 전시회 AdminController * refactor: 전시회 등록 및 수정 * feat: 유저 전체 조회 * rename: 폴더 위치 수정 * rename: 폴더 위치 수정 * refactor: 메서드명 변경 * feat: 공모전 -> 전시회 로직 * feat: 공모전 -> 전시회 dto * refactor: 공모전사진 dto명 변경 * refactor: code convention * refactor: code convention * refactor: code convention * refactor: code convention 및 content 제거 * feat: 전시회사진 dto 변경 * refactor: repository 수정 * refactor: code convention ExhibitionService 수정 * feat: 전시 사진 dto * rename: 폴더경로 수정 * refactor: 정보 수정 로직 변경 * refactor: code convention * feat: 전시에 사진 단일 업로드 dto * feat: 전시될 사진, 전시된 사진 가져오기 * feat: 전시 사진 등록 로직 * refactor: 필요없는 필드값 제거 * refactor: 필요없는 어노테이션 제거 * refactor: 학번 validation 추가 * rename: 폴더 경로 변경 * refactor: 필요없는 주석 삭제 * feat: 프로필 확인 * refactor&feat: exhibition 및 코드 수정 (#22) * refactor: 낙관적 락 사용 * refactor: api 명세 수정 * refactor: api 명세 수정 * refactor: 필요없는 공백 제거 * refactor: 메서드명 변경 * refactor: 로그 추가 * refactor: 공모전 Id 필드 추가 * feat: 최근 전시회 조회 dto * refactor: 필요없는 주석 제거 * feat: 최근 전시 조회 * feat: 최근 전시 조회 * feat: 최근 전시 조회 * refactor: 공모전 -> 전시회 * refactor: 사진 작가 field 추가 * hotfix: 사진 좋아요 수 동기화 dto * chore: security url 경로 변경 * refactor: 학번 필드 추가 * refactor: 유저 요청 정보 dto 수정 * refactor: 필요없는 코드 정리 * chore: stop.sh 생성 (#24) * chore: appspec (#23) * chore: start.sh 생성 (#25) * chore: update build.gradle (#26) * chore: create blank.yml (#27) --------- Co-authored-by: fuirian Co-authored-by: taewook02 * chore: update blank.yml --------- Co-authored-by: fuirian Co-authored-by: taewook02 --- .github/workflows/blank.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml index 9b4d745..d059ae9 100644 --- a/.github/workflows/blank.yml +++ b/.github/workflows/blank.yml @@ -26,7 +26,6 @@ jobs: runs-on: ubuntu-latest environment: production - # 아래의 flow들이 차례대로 실행됩니다. steps: # 1) 기본 체크아웃 - name: Checkout From 488875cb24e589e801dfb5b3e5f0dc8e275a0177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 12:29:05 +0900 Subject: [PATCH 02/13] chore: update and rename blank.yml to deploy.yml --- ".github/workflows/\bdeploy.yml" | 78 ++++++++++++++++++++++++++++++++ .github/workflows/blank.yml | 75 ------------------------------ 2 files changed, 78 insertions(+), 75 deletions(-) create mode 100644 ".github/workflows/\bdeploy.yml" delete mode 100644 .github/workflows/blank.yml diff --git "a/.github/workflows/\bdeploy.yml" "b/.github/workflows/\bdeploy.yml" new file mode 100644 index 0000000..5b035fc --- /dev/null +++ "b/.github/workflows/\bdeploy.yml" @@ -0,0 +1,78 @@ +# This is a basic workflow to help you get started with Actions + +name: Java CI with Gradle & Deploy to EC2 + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "develop" branch + push: + branches: [ main ] + pull_request: + branches: [ main ] + +env: + AWS_REGION: ap-northeast-2 + S3_BUCKET_NAME: photolab-github-actions-s3-bucket + CODE_DEPLOY_APPLICATION_NAME: photolab-codedeploy-app + CODE_DEPLOY_DEPLOYMENT_GROUP_NAME: photolab-codedeploy-deployment-group + RESOURCE_PATH: ./src/main/resources/application.yml + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + deploy: + name: Deploy + runs-on: ubuntu-latest + environment: production + + steps: + # 1) 기본 체크아웃 + - name: Checkout + uses: actions/checkout@v3 + + # 2) JDK 17 셋팅 + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'adopt' + + # 3) gradlew 권한 설정 + - name: Grant execute permission for gradlew + run: chmod +x gradlew + shell: bash + + # 4) gradle 빌드 + - name: Build with Gradle + run: ./gradlew clean build + shell: bash + + # ZIP 파일 생성 + - name: Make zip file + run: zip -r ./$GITHUB_SHA.zip . + shell: bash + + # AWS 인증 + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ env.AWS_REGION }} + + # AWS S3에 업로드 + - name: Upload to AWS S3 + run: | + aws deploy push \ + --application-name ${{ env.CODE_DEPLOY_APPLICATION_NAME }} \ + --ignore-hidden-files \ + --s3-location s3://$S3_BUCKET_NAME/$GITHUB_SHA.zip \ + --source . + + # AWS EC2에 Deploy + - name: Deploy to AWS EC2 from S3 + run: | + aws deploy create-deployment \ + --application-name ${{ env.CODE_DEPLOY_APPLICATION_NAME }} \ + --deployment-config-name CodeDeployDefault.AllAtOnce \ + --deployment-group-name ${{ env.CODE_DEPLOY_DEPLOYMENT_GROUP_NAME }} \ + --s3-location bucket=$S3_BUCKET_NAME,key=$GITHUB_SHA.zip,bundleType=zip diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml deleted file mode 100644 index d059ae9..0000000 --- a/.github/workflows/blank.yml +++ /dev/null @@ -1,75 +0,0 @@ -# This is a basic workflow to help you get started with Actions - -name: Java CI with Gradle & Deploy to EC2 - -# Controls when the workflow will run -on: - # Triggers the workflow on push or pull request events but only for the "develop" branch - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - -env: - AWS_REGION: ap-northeast-2 - S3_BUCKET_NAME: photolab-github-actions-s3-bucket - CODE_DEPLOY_APPLICATION_NAME: photolab-codedeploy-app - CODE_DEPLOY_DEPLOYMENT_GROUP_NAME: photolab-codedeploy-deployment-group - -permissions: - contents: read - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - deploy: - name: Deploy - runs-on: ubuntu-latest - environment: production - - steps: - # 1) 기본 체크아웃 - - name: Checkout - uses: actions/checkout@v3 - - # 2) JDK 17 셋팅 - - name: Set up JDK 11 - uses: actions/setup-java@v3 - with: - java-version: '17' - distribution: 'temurin' - - # 3) gradlew 권한 설정 - - name: Grant execute permission for gradlew - run: chmod +x gradlew - working-directory: ${{ env.working-directory }} - - # 4) gradle 빌드 - - name: Build with Gradle - run: ./gradlew clean build - working-directory: ${{ env.working-directory }} - - # AWS 인증 - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ env.AWS_REGION }} - - # AWS S3에 업로드 - - name: Upload to AWS S3 - run: | - aws deploy push \ - --application-name ${{ env.CODE_DEPLOY_APPLICATION_NAME }} \ - --ignore-hidden-files \ - --s3-location s3://$S3_BUCKET_NAME/$GITHUB_SHA.zip \ - --source . - - # AWS EC2에 Deploy - - name: Deploy to AWS EC2 from S3 - run: | - aws deploy create-deployment \ - --application-name ${{ env.CODE_DEPLOY_APPLICATION_NAME }} \ - --deployment-config-name CodeDeployDefault.AllAtOnce \ - --deployment-group-name ${{ env.CODE_DEPLOY_DEPLOYMENT_GROUP_NAME }} \ - --s3-location bucket=$S3_BUCKET_NAME,key=$GITHUB_SHA.zip,bundleType=zip From 961422302b98452cc5c55d6340235b0bc9091545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 16:00:32 +0900 Subject: [PATCH 03/13] =?UTF-8?q?chore:=20mysql=20=EC=84=A4=EC=A0=95=20(#3?= =?UTF-8?q?4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- .../photolabbe/auth/jwt/service/JwtService.java | 3 --- src/main/resources/application-db.yml | 6 ++++++ src/main/resources/application.yml | 7 +------ 4 files changed, 8 insertions(+), 10 deletions(-) create mode 100644 src/main/resources/application-db.yml diff --git a/build.gradle b/build.gradle index ac7ed35..5a5e676 100644 --- a/build.gradle +++ b/build.gradle @@ -36,7 +36,7 @@ dependencies { implementation 'com.mysql:mysql-connector-j' compileOnly 'org.projectlombok:lombok' - runtimeOnly 'com.h2database:h2' + runtimeOnly 'com.mysql:mysql-connector-j' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' diff --git a/src/main/java/mjuphotolab/photolabbe/auth/jwt/service/JwtService.java b/src/main/java/mjuphotolab/photolabbe/auth/jwt/service/JwtService.java index 2f29d57..a30f2c0 100644 --- a/src/main/java/mjuphotolab/photolabbe/auth/jwt/service/JwtService.java +++ b/src/main/java/mjuphotolab/photolabbe/auth/jwt/service/JwtService.java @@ -4,9 +4,6 @@ import java.util.Optional; import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Service; import com.auth0.jwt.JWT; diff --git a/src/main/resources/application-db.yml b/src/main/resources/application-db.yml new file mode 100644 index 0000000..a9295e5 --- /dev/null +++ b/src/main/resources/application-db.yml @@ -0,0 +1,6 @@ +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: ${DB_URL} + username: ${DB_USERNAME} + password: ${DB_PASSWORD} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 223da0f..f8bca91 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -4,12 +4,7 @@ spring: include: - oauth - aws - - datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - url: ${DB_URL} - username: ${DB_USERNAME} - password: ${DB_PASSWORD} + - db jpa: hibernate: From 4fae7c2406630518bf1dee0cab01404ab7b8d83f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 17:37:20 +0900 Subject: [PATCH 04/13] =?UTF-8?q?chore:=20s3=20=ED=99=98=EA=B2=BD=EB=B3=80?= =?UTF-8?q?=EC=88=98=20=EC=84=A4=EC=A0=95=20(#36)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: mysql 설정 * chore: mysql 설정 * chore: s3 환경변수 설정 --- .../java/mjuphotolab/photolabbe/aws/service/AwsS3Service.java | 2 +- src/main/resources/application-aws.yml | 2 +- .../java/mjuphotolab/photolabbe/PhotoLabBeApplicationTests.java | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/mjuphotolab/photolabbe/aws/service/AwsS3Service.java b/src/main/java/mjuphotolab/photolabbe/aws/service/AwsS3Service.java index f726e49..b4b12c6 100644 --- a/src/main/java/mjuphotolab/photolabbe/aws/service/AwsS3Service.java +++ b/src/main/java/mjuphotolab/photolabbe/aws/service/AwsS3Service.java @@ -26,7 +26,7 @@ @RequiredArgsConstructor public class AwsS3Service { - @Value("${cloud.aws.s3.bucket}") + @Value("${cloud.aws.S3_BUCKET}") private String bucket; private final AmazonS3 amazonS3Client; diff --git a/src/main/resources/application-aws.yml b/src/main/resources/application-aws.yml index 1e17988..237cd8e 100644 --- a/src/main/resources/application-aws.yml +++ b/src/main/resources/application-aws.yml @@ -4,7 +4,7 @@ cloud: access-key: ${AWS_ACCESS_KEY_ID} secret-key: ${AWS_SECRET_ACCESS_KEY} s3: - bucket: ${s3.bucket} + bucket: ${S3_BUCKET} region: static: ${AWS_DEFAULT_REGION} stack: diff --git a/src/test/java/mjuphotolab/photolabbe/PhotoLabBeApplicationTests.java b/src/test/java/mjuphotolab/photolabbe/PhotoLabBeApplicationTests.java index fb591cf..54a95a1 100644 --- a/src/test/java/mjuphotolab/photolabbe/PhotoLabBeApplicationTests.java +++ b/src/test/java/mjuphotolab/photolabbe/PhotoLabBeApplicationTests.java @@ -2,8 +2,10 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ContextConfiguration; @SpringBootTest +@ContextConfiguration(classes = PhotoLabBeApplication.class) class PhotoLabBeApplicationTests { @Test From d3f65082a3831d94f53fe939cde5591cb96a6203 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 17:44:44 +0900 Subject: [PATCH 05/13] =?UTF-8?q?chore:=20s3=20=ED=99=98=EA=B2=BD=EB=B3=80?= =?UTF-8?q?=EC=88=98=20=EC=84=A4=EC=A0=95=20(#38)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: mysql 설정 * chore: mysql 설정 * chore: s3 환경변수 설정 * chore: s3 환경변수 설정 From 679b74de336ec9c3a5025cc400b6b4ce61fbc307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 18:43:18 +0900 Subject: [PATCH 06/13] =?UTF-8?q?chore:=20secrets=20=ED=99=98=EA=B2=BD?= =?UTF-8?q?=EB=B3=80=EC=88=98=20=EC=B6=94=EA=B0=80=20(#40)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: mysql 설정 * chore: mysql 설정 * chore: s3 환경변수 설정 * chore: s3 환경변수 설정 * chore: secrets 환경변수 추가 --- ".github/workflows/\bdeploy.yml" | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git "a/.github/workflows/\bdeploy.yml" "b/.github/workflows/\bdeploy.yml" index 5b035fc..e97aa9f 100644 --- "a/.github/workflows/\bdeploy.yml" +++ "b/.github/workflows/\bdeploy.yml" @@ -35,7 +35,21 @@ jobs: with: java-version: '17' distribution: 'adopt' - + + - name: Set yaml file + uses: microsoft/variable-substitution@v1 + with: + files: ./src/main/resources/application.yml + env: + spring.datasource.url: ${{secrets.AWS_ACCESS_KEY_ID}} + spring.datasource.username: ${{secrets.DB_USERNAME}} + spring.datasource.password: ${{secrets.DB_PASSWORD}} + spring.s3.bucket: ${{secrets.S3_BUCKET}} + sprig.s3.access-key: ${{secrets.AWS_ACCESS_KEY_ID}} + sprig.s3.secret-key: ${{secrets.AWS_SECRET_ACCESS_KEY}} + cloud.aws.region.static: ${{secrets.AWS_DEFAULT_REGION}} + jwt.secret: ${{secrets.JWT_SECRET}} + # 3) gradlew 권한 설정 - name: Grant execute permission for gradlew run: chmod +x gradlew From 1da21ce991735d6530d1d29ed12984969601e3d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 20:48:31 +0900 Subject: [PATCH 07/13] =?UTF-8?q?chore:=20test=20=EC=A0=9C=EC=99=B8=20(#42?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: mysql 설정 * chore: mysql 설정 * chore: s3 환경변수 설정 * chore: s3 환경변수 설정 * chore: secrets 환경변수 추가 * chore: test 제외 --- ".github/workflows/\bdeploy.yml" | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git "a/.github/workflows/\bdeploy.yml" "b/.github/workflows/\bdeploy.yml" index e97aa9f..7a56fa3 100644 --- "a/.github/workflows/\bdeploy.yml" +++ "b/.github/workflows/\bdeploy.yml" @@ -35,21 +35,7 @@ jobs: with: java-version: '17' distribution: 'adopt' - - - name: Set yaml file - uses: microsoft/variable-substitution@v1 - with: - files: ./src/main/resources/application.yml - env: - spring.datasource.url: ${{secrets.AWS_ACCESS_KEY_ID}} - spring.datasource.username: ${{secrets.DB_USERNAME}} - spring.datasource.password: ${{secrets.DB_PASSWORD}} - spring.s3.bucket: ${{secrets.S3_BUCKET}} - sprig.s3.access-key: ${{secrets.AWS_ACCESS_KEY_ID}} - sprig.s3.secret-key: ${{secrets.AWS_SECRET_ACCESS_KEY}} - cloud.aws.region.static: ${{secrets.AWS_DEFAULT_REGION}} - jwt.secret: ${{secrets.JWT_SECRET}} - + # 3) gradlew 권한 설정 - name: Grant execute permission for gradlew run: chmod +x gradlew @@ -57,7 +43,7 @@ jobs: # 4) gradle 빌드 - name: Build with Gradle - run: ./gradlew clean build + run: ./gradlew clean build -x test shell: bash # ZIP 파일 생성 From a5ef4a843bb96987933d4a9e896975bddd104854 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 21:46:40 +0900 Subject: [PATCH 08/13] chore: update deploy.yml (#44) --- ".github/workflows/\bdeploy.yml" | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git "a/.github/workflows/\bdeploy.yml" "b/.github/workflows/\bdeploy.yml" index 7a56fa3..c7d529a 100644 --- "a/.github/workflows/\bdeploy.yml" +++ "b/.github/workflows/\bdeploy.yml" @@ -40,7 +40,31 @@ jobs: - name: Grant execute permission for gradlew run: chmod +x gradlew shell: bash - + + # 환경별 yml 파일 생성(1) - oauth + - name: make application-oauth.yml + run: | + cd ./src/main/resources + touch ./application-oauth.yml + echo "${{ secrets.YML_OAUTH }}" > ./application-oauth.yml + shell: bash + + # 환경별 yml 파일 생성(2) - aws + - name: make application-aws.yml + run: | + cd ./src/main/resources + touch ./application-aws.yml + echo "${{ secrets.YML_AWS }}" > ./application-aws.yml + shell: bash + + # 환경별 yml 파일 생성(3) - db + - name: make application-db.yml + run: | + cd ./src/main/resources + touch ./application-db.yml + echo "${{ secrets.YML_DB }}" > ./application-db.yml + shell: bash + # 4) gradle 빌드 - name: Build with Gradle run: ./gradlew clean build -x test @@ -63,7 +87,7 @@ jobs: - name: Upload to AWS S3 run: | aws deploy push \ - --application-name ${{ env.CODE_DEPLOY_APPLICATION_NAME }} \ + --application-name ${{ env.CODE_DEPLOY_APPLICATION_NAME }} \ --ignore-hidden-files \ --s3-location s3://$S3_BUCKET_NAME/$GITHUB_SHA.zip \ --source . From ddff30f3bbb493d966b1d74b37589a4081ed033a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 22:10:04 +0900 Subject: [PATCH 09/13] chore: update deploy.yml (#46) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: mysql 설정 * chore: mysql 설정 * chore: s3 환경변수 설정 * chore: s3 환경변수 설정 * chore: secrets 환경변수 추가 * chore: test 제외 * chore: update deploy.yml (#2) * chore: update deploy.yml --- ".github/workflows/\bdeploy.yml" | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git "a/.github/workflows/\bdeploy.yml" "b/.github/workflows/\bdeploy.yml" index c7d529a..c710f9b 100644 --- "a/.github/workflows/\bdeploy.yml" +++ "b/.github/workflows/\bdeploy.yml" @@ -49,20 +49,20 @@ jobs: echo "${{ secrets.YML_OAUTH }}" > ./application-oauth.yml shell: bash - # 환경별 yml 파일 생성(2) - aws - - name: make application-aws.yml + # 환경별 yml 파일 생성(2) - db + - name: make application-db.yml run: | cd ./src/main/resources - touch ./application-aws.yml - echo "${{ secrets.YML_AWS }}" > ./application-aws.yml + touch ./application-db.yml + echo "${{ secrets.YML_DB }}" > ./application-db.yml shell: bash - # 환경별 yml 파일 생성(3) - db - - name: make application-db.yml + # 환경별 yml 파일 생성(3) - dev + - name: make application.yml run: | cd ./src/main/resources - touch ./application-db.yml - echo "${{ secrets.YML_DB }}" > ./application-db.yml + touch ./application.yml + echo "${{ secrets.YML }}" > ./application.yml shell: bash # 4) gradle 빌드 From f85943911a880d9f5f007f077f92aedd955e93db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 22:16:16 +0900 Subject: [PATCH 10/13] chore: update deploy.yml --- ".github/workflows/\bdeploy.yml" | 8 -------- 1 file changed, 8 deletions(-) diff --git "a/.github/workflows/\bdeploy.yml" "b/.github/workflows/\bdeploy.yml" index 18472e3..1384911 100644 --- "a/.github/workflows/\bdeploy.yml" +++ "b/.github/workflows/\bdeploy.yml" @@ -56,14 +56,6 @@ jobs: touch ./application-db.yml echo "${{ secrets.YML_DB }}" > ./application-db.yml shell: bash - - # 환경별 yml 파일 생성(3) - - name: make application.yml - run: | - cd ./src/main/resources - touch ./application.yml - echo "${{ secrets.YML }}" > ./application.yml - shell: bash # 4) gradle 빌드 - name: Build with Gradle From 2e91c282e369080c5fd23abf9d46b43c29a2f2d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 22:28:45 +0900 Subject: [PATCH 11/13] chore: update deploy.yml --- ".github/workflows/\bdeploy.yml" | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git "a/.github/workflows/\bdeploy.yml" "b/.github/workflows/\bdeploy.yml" index 1384911..1ff06b0 100644 --- "a/.github/workflows/\bdeploy.yml" +++ "b/.github/workflows/\bdeploy.yml" @@ -77,12 +77,7 @@ jobs: # AWS S3에 업로드 - name: Upload to AWS S3 - run: | - aws deploy push \ - --application-name ${{ env.CODE_DEPLOY_APPLICATION_NAME }} \ - --ignore-hidden-files \ - --s3-location s3://$S3_BUCKET_NAME/$GITHUB_SHA.zip \ - --source . + run: aws s3 cp --region $AWS_REGION ./$GITHUB_SHA.zip s3://${{ secrets.S3_BUCKET_NAME }}/deploy/$GITHUB_SHA.zip --source . # AWS EC2에 Deploy - name: Deploy to AWS EC2 from S3 From 18ebc0e88c9d28d96a1160f74799893576e699a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 22:40:03 +0900 Subject: [PATCH 12/13] chore: update deploy.yml --- ".github/workflows/\bdeploy.yml" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/.github/workflows/\bdeploy.yml" "b/.github/workflows/\bdeploy.yml" index 1ff06b0..098844c 100644 --- "a/.github/workflows/\bdeploy.yml" +++ "b/.github/workflows/\bdeploy.yml" @@ -77,7 +77,7 @@ jobs: # AWS S3에 업로드 - name: Upload to AWS S3 - run: aws s3 cp --region $AWS_REGION ./$GITHUB_SHA.zip s3://${{ secrets.S3_BUCKET_NAME }}/deploy/$GITHUB_SHA.zip --source . + run: aws s3 cp --region $AWS_REGION ./$GITHUB_SHA.zip s3://$S3_BUCKET_NAME/deploy/$GITHUB_SHA.zip --source . # AWS EC2에 Deploy - name: Deploy to AWS EC2 from S3 From 7f587a03e891cc6e40f95fe9a713d4afc285e52a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=82=98=EA=B2=BD=ED=98=B8?= Date: Wed, 22 Nov 2023 22:43:53 +0900 Subject: [PATCH 13/13] chore: update deploy.yml --- ".github/workflows/\bdeploy.yml" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/.github/workflows/\bdeploy.yml" "b/.github/workflows/\bdeploy.yml" index 1ff06b0..098844c 100644 --- "a/.github/workflows/\bdeploy.yml" +++ "b/.github/workflows/\bdeploy.yml" @@ -77,7 +77,7 @@ jobs: # AWS S3에 업로드 - name: Upload to AWS S3 - run: aws s3 cp --region $AWS_REGION ./$GITHUB_SHA.zip s3://${{ secrets.S3_BUCKET_NAME }}/deploy/$GITHUB_SHA.zip --source . + run: aws s3 cp --region $AWS_REGION ./$GITHUB_SHA.zip s3://$S3_BUCKET_NAME/deploy/$GITHUB_SHA.zip --source . # AWS EC2에 Deploy - name: Deploy to AWS EC2 from S3