From 2d453e945fdc7f40b685a84e18eef98015527822 Mon Sep 17 00:00:00 2001 From: Donghun Won Date: Tue, 1 Oct 2024 17:38:06 +0900 Subject: [PATCH] =?UTF-8?q?Release=20:=20=EC=86=94=EB=A6=AC=ED=88=AC?= =?UTF-8?q?=EC=96=B4=20v1.1.0=20(#215)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: page 객체 직렬화 문제 해결 * Feat(#91) : 여행일기 페이지네이션 (#106) * Feat : 여행 일기 crud * Feat : 타이틀 이미지 필드 추가 * Feat : 개별 diary 조회, title 이미지 반환값에 추가 * Feat : 여행일기 조회 페이지네이션 * Style: 코드 포맷팅 * Feat(#95) : 정보 좋아요 (#107) * Style : 코드 import 포맷팅 * Feat : 정보 좋아요 기능 좋아요 개수 조회 좋아요 좋아요 취소 * Style : 코드 포맷핑 * Feat : 정보 좋아요 삭제 시 요청 parameter수정 * fix: @NotNull 추가 * fix: repository -> JpaRepository 수정 * feat: isDeleted 필드 추가 * feat: 정보 상세 response dto 필드 추가 * feat: 정보 메인 응답 response 필드 추가 * feat: 북마크와 좋아요 삭제되지 않은 것 where 추가 * feat: 정보 상세 조회 service dto 필드 수정으로 인해 추가 구현 * feat: 좋아요 정보 id, 유저 id, 삭제 되지 않은것 있는지 확인 * feat: 북마크 좋아요 삭제 되지 않은 것 where 절 추가 * feat: isDeleted 필드 삭제 * feat: gathering default false 추가로 인한 코드 삭제 * feat: isApplicants 이 모임에 참여 신청을 했는지 필드 추가 * feat: isDeleted 삭제로 인한 코드 수정 * style: 코드 스타일 수정 * refactor: isDeleted 칼럼 삭제로 인한 수정 * fix: 모임 등록할때 모임 작성자도 모임 신청 save * style: 코드 스타일 수정 * style: 코드 스타일 수정 * Feat(#110) : mypage 정보, 모임 조회 (#111) * Feat : 마이페이지 프로필 이미지 변경 * Feat : 마이페이지 내가 작성한 정보, 구독한 정보 조회 * Style : 코드 포맷팅 * Feat : 마이페이지 모임조회 내가 작성한 모임 조회 내가 신청한 모임 조회 내가 북마크한 모임 조회 * Feat : 유저 모임 가입 상태 필드 추가 * Style : 코드 포맷팅 * Refactor(#110) : group by 쿼리 간소화 (#112) * Refactor : group by 쿼리 간소화 * refactor: 모임 상태 return * refactor: user id 필드 추가 * refactor: * Feature(#114): 정보, 모임 해시태그 검색 (#115) * Feat : 태그 검색 * Refactor : 마감여부 필드 추가, 가입상태 서술 변경 * Feat : 정보 태그 검색 * Feat: 모임 태그 검색 * Style : 코드 포맷팅 * feat: 모임 상태를 완료로 변경 하거나 완료하지 않았다로 변경 할때 이미 그 상태일때 발생하는 exception * feat: 모임 상태를 완료로 변경 하거나 완료하지 않았다로 변경 service * feat: 모임 상태를 완료로 변경 하거나 완료하지 않았다로 변경 controller * fix: validation if 문 수정 * Feat(#114) : 태그 검색 필터 (#118) * Refactor : 태그 필터 추가 공백, 특수문자 제거 한글, 영어, 숫자만 허용 * Feature(#119): 회원가입 중복 검증 (#120) * Refactor : 유저 아이디 중복 검증 * Feature(#121) : 이미지 업로드 로직 수정 (#122) * Refactor : 이미지 업로드 로직 수정 * Refactor : imageStatus 추가 * feat: 정보 create request dto * fix: gathering 생성자에 isDeleted false로 지정 * fix: gatheringApplicants 상태값 consent인 유저들만 count * feat: 사용하지 않는 코드 제거 및 createdDate 칼럼 어노테이션 적용 * feat: S3 upload response dto * refactor: createdDate 칼럼 어노테이션 적용 * feat: create information api 수정 * refactor: s3 upload api 반환타입 수정 * refactor: S3FileResponse dto 반환 타입 수정 * refactor: 정보 등록 api 수정 * Feat(#121): 이미지 업로드 시 dev, prod 환경 구분+ 엔티티별로 구분해서 경로 설정 (#125) * Feat : 엔티티, 환경에 따라 저장 경로 변경 * Refactor : 유저 프로필 이미지 url 위치 yml 파일로 변경 * Feat(#95) : 모임 북마크 (#126) * Feat : 모임 북마크 * Refactor : 모임 북마크 생성자 추가 * Fix : imageStatus 필드 복구 * Feature(#121) : 이미지 엔티티 경로 분류 시에 enum사용하도록 변경 (#127) * Refactor : 이미지 엔티티 경로 분류 시에 enum사용하도록 변경 * Feat(#128) : 엑세스 토큰 만료시 401 코드 반환 (#129) * Feat : 엑세스 토큰 기간 연장, 로그아웃 시 쿠키 삭제 * Style : 코드 포맷팅 * Refactor : 유저 아이디 중복 검증 * Refactor : 엑세스 토큰 만료시 401 코드 반환 * feat: 정보에 대한 권한 이 없는경우 exception * feat: 정보 update request dto * feat: 정보에 대한 권한 이 없는경우 exception handler * feat: 자식 카테고리 찾는 메서드 * feat: 정보에서 썸네일 이미지가 존재하는지 * feat: 정보 수정 api version2, 정보 삭제할때 userId 가져오는거 수정 * feat: 정보 수정 version2 service * refactor: 사용하지 않는 코드 삭제 * fix: url mapping 오류 해결 * fix: category 로직 수정 * fix: createdDate 칼럼 auto 생성 설정 문제 해결 * feat: 공지사항 entity 생성 * feat: 공지사항 (공지사항 생성, 수정, 제거, 목록조회, 상세조회, 관리자인경우 조회시 제거된 공지사항도 조회가능) 기능 * feat: QnA (QnA페이지,상태,검색으로 관리자가 관리할 QnA목록 조회, QnA 생성, QnA 사용자 목록 조회, QnA 상세 조회, QnA 제거, QnA 질문 등록, QnA 답변 등록) 작업 * fix: 예외처리하려다가 남겨놓은 불필요한 코드 삭제 * feat: enum 클래스 해당하는 값이 없으면 throw exception * feat: user default image getter() * feat: user default image value 가져오고 getter * feat: user default image service * Fix : 유저 정보글 조회, 유저 정보 북마크 조회 안되는 오류 수정 (#137) * Feat : 마이페이지 프로필 이미지 변경 * Feat : 마이페이지 내가 작성한 정보, 구독한 정보 조회 * Style : 코드 포맷팅 * Feat : 마이페이지 모임조회 내가 작성한 모임 조회 내가 신청한 모임 조회 내가 북마크한 모임 조회 * Feat : 유저 모임 가입 상태 필드 추가 * Style : 코드 포맷팅 * Refactor : group by 쿼리 간소화 * Refactor : 불필요한 북마크 조회 로직 삭제 * Fix : 유저 정보글 조회, 유저 정보 북마크 조회 안되는 오류 수정 isLike 구하는 로직 해당 결과 필드에 추가 * Feat(#114) : 정보, 모임 태그 검색 (#138) * Feat : 태그 검색 * Refactor : 마감여부 필드 추가, 가입상태 서술 변경 * Feat : 정보 태그 검색 * Feat: 모임 태그 검색 * Style : 코드 포맷팅 * Refactor : 태그 필터 추가 공백, 특수문자 제거 한글, 영어, 숫자만 허용 * feat: image s3 객체 lifecycle 적용 * feat: information 등록시 s3 image lifecycle 제거 * fix: home 페이지에 gathering 현재 참가 확정 인원 수 수정 * fix: 모집완료 된 모임 제외 where 절 수정 * Feat (#142): 모임 좋아요 기능 / 모임,정보 북마크, 좋아요 중복 체크 / 모임,정보 북마크,좋아요 예외, 상태 코드 처리 (#143) * Refactor : 토큰 존재하지 않을때, 유효하지 않을떄 예외 추가 * Refactor : 모임, 정보 예외 처리, 상태코드 변경 * Feat : 모임 좋아요 * Fix : 내가 신청한 모임 조회시 내가 모집한 모임 제외하도록 수정 (#145) * feat: 모임 아직 안끝났다고 수정할때 마감일 변경 request dto * feat: 마감일 변경 * feat: Request body GatheringNotFinishRequest * Fix : 태그 검색 인코딩 방식 변경 (#149) url인코딩, 디코딩 방식으로 변경 * Refactor(#150) : 회원 탈퇴 기능 향상 (#151) * Refactor: 최근 로그인 시간 기록, 카카오 로그인 닉네임 랜덤하게 설정 * Feat : 회원 탈퇴 유저 이미지 디폴트 이미지로 변경 유저 정보 null로 변경 s3에 저장된 유저 이미지 삭제 * feat: 모임 테이블 오픈 채팅 링크 컬럼 추가로 인해 entity 필드 추가 * refactor: 마감일 수정 삭제 * feat: 모임 테이블 오픈 채팅 링크 컬럼 추가로 인해 request dto 필드 추가 * feat: 모임 테이블 오픈 채팅 링크 컬럼 추가로 인해 response dto 필드 추가 * refactor: 모임 테이블 오픈 채팅 링크 컬럼 추가로 인해 수정, 조회, 생성 로직 변경 * feat: image entity setter 추가 * feat: 이미지 주소로 이미지 찾는 메서드 repository * feat: InformationUpdateRequest image 관련 필드 추가 * feat: information update 수정 * style: import 문 정리 * fix: s3 object key 값 수정 * style: 사용하지 않는 dto 삭제 * refactor: image request dto * refactor: address 길이 제한 50으로 수정 및 image request dto 추가 * refactor: image request dto 추가로 인한 refactor, 상세 페이지 글 작성자에 대한 유저 프로필 이미지로 반환 * fix: user 수정 * feat: information entity class viewCount plus method * feat: gathering entity class viewCount plus method * feat: information 조회수 올리기 * feat: information detail 조회 api 요청시 조회수 올리기 위한 HttpServletResponse 파라미터에 추가 * feat: gathering 조회수 올리기 * feat: gathering detail 조회 api 요청시 조회수 올리기 위한 HttpServletResponse 파라미터에 추가 * feat: 한 브라우저에 a 라는 회원이 조회를 했어 그 다음에 로그아웃하고 b 회원이 조회를 했어 그 다음 로그아웃 하고 비회원이 조회를 했어 이렇게 하면 3이 증가 해야 한다 이런 시나리오를 위한 로직 추가 * Refactor : 다이어리 콘텐트 이미지 필드 추가에 따라 로직 변경 (#161) * Fix : qna 결과 얻을때 발생하는 no session 문제 해결 (#163) * feat: 마감일이 지난 모임들은 안보여주는 where 절 추가 * fix: binding result 제거 * Fix : 승인된 유저만 인원수에 포함하도록 쿼리 수정 (#168) * Refactor(#169) : 일기 예외처리 (#170) * Refactor : 다이어리 콘텐트 이미지 필드 추가에 따라 로직 변경 * Refactor : authenticated 위치 변경, 상태코드 변경 * Refactor : 일기 없을때, 일기 권한 없을때 예외처리 * fix: qna 상세정보 조회시 메시지들 안보이는 문제 수정 * fix: qna 리스트 조회시 mysql 쿼리가 잘못되어서 수정 * fix: 조회수 쿠키 * style: 필요없는 import 문 제거 * feat: 정보 상세 dto response category 필드 추가 * feat: information page request dto 검색 필드 추가 * feat: information page 검색 기능 추가 * feat: information detail 조회시 category 추가 * feat: gathering detail response userImage 필드 추가 * feat: gathering detail service userImage 필드 추가 * Feat(#150) : 회원 탈퇴 방법 변경(카카오) (#175) * Refactor: 최근 로그인 시간 기록, 카카오 로그인 닉네임 랜덤하게 설정 * Feat : 회원 탈퇴 유저 이미지 디폴트 이미지로 변경 유저 정보 null로 변경 s3에 저장된 유저 이미지 삭제 * Refactor : 회원 탈퇴 방법 변경 kakao 로 부터 받은 refresh token을 저장해서 access token 재발급하여 회원 탈퇴 요청 하는 방법으로 변경 * Fix : 정보, 모임 조회시 로그인 유저 토큰 검증 로직 추가 * fix: and -> or * fix: gathering 조회수 기능 수정 * fix: information 조회수 기능 수정 * feat: 해시 함수 암호화 * fix: 이미지 삭제 할때 이미지 url 파싱 수정 * feature: 모임 조회수 기능 개선 * feature: 정보 조회수 기능 개선 * fix: error 임시 해결 * docs: git ignore resources/ .yml 파일로 수정 * docs: schema.sql * docs: 초반 data.sql * docs: git actions yml파일 * docs: git actions yml 파일 변경 - 브랜치 별로 application.yml 파일 다르게 설정 * docs: git actions yml 파일 변경 - gradlew 실행 권한 부여 * docs: git actions yml 파일 변경 - gradlew 실행 gradle9.0 버전에 맞게 수정 * docs: git actions yml 파일 변경 - gradlew 실행 시 오류가 날 경우 어떤 오류인지 * docs: git actions yml 파일 변경 - gradlew 실행 시 오류가 날 경우 어떤 오류인지 * docs: git actions yml 파일 변경 * docs: git actions yml 파일 변경 * docs: git actions yml 파일 변경 * docs: git actions yml 파일 변경 * fix: 모집 중 체크 해제했을 때 마감 일이 지난 것이 보이지 않는 오류 수정하기 * fix: 좋아요 로직 수정 * fix: 작성자 이름이 아니라 닉네임으로 수정 * docs: ci/cd yml 파일 수정 * docs: ci/cd yml 파일 수정 * docs: ci/cd yml 파일 수정 * docs: ci/cd yml 파일 수정 * docs: ci/cd yml 파일 수정 * docs: 테스트 h2 데이터베이스 설정 * docs: 테스트 h2 데이터베이스 설정 * docs: 테스트 h2 데이터베이스 설정 * docs: test 와 build 분리 설정 * docs: test schema.sql * docs: yml * docs: yml * Fix : test schema 파일 추가 * Fix : 테스트 스키마 업로드 삭제 * docs: h2 schema.sql 수정 * fix: 충돌 해결 * docs: yml * fix: 충돌로 인한 문제 해결 * fix: gathering 페이지네이션 모임 숫자 오류, home 에서 좋아요 했는지 * Fix : oauth 로그인 수정, 마이페이지 모임 오류 수정 (#183) 마이페이지 모임 조회 안되는 문제 수정 마이페이지 모임 인원수 계산 안되는 문제 수정 * fix: left join 시 중복 문제 해결 -> 일부 서브 쿼리로 해결 * Fix: 모임 사용자 본명 대신 닉네임 전달 (#185) * refactor: zone_category에 "세종" 추가 * fix: 모임 작성자 본명이 아니라 닉네임 전달 * refactor: name -> nickname 필드 수정 * refactor: name -> nickname 수정 * feat: category name 데이터 추가 * refactor: 쿼리문 개선 * Feat : 유저 블락 기능 (#186) * Refactor : 로그인 로직 수정 (#187) * Refactor : 로그인 로직 수정 최초 로그인 시에 inactive 상태 부여 이후 이름,성별,나이가 입력되면 active 상태로 전환 * Feat : 유저 성별 없을때 디폴트 이미지로 프로필 설정 * Feat : 유저 프로필 이미지 삭제 기능 * Refactor : 유저 이미지 업데이트 시 s3에서 이미지 삭제되도록 수정 * Style: 코드 포맷팅 * Fix : 유저 추가 정보 입력시 활성화 상태로 수정 * Feat : 유저 프로필 삭제 기능 (#190) * Feat : 유저 프로필 이미지 삭제 기능 * Refactor : 유저 이미지 업데이트 시 s3에서 이미지 삭제되도록 수정 * Style: 코드 포맷팅 * Fix : 유저 추가 정보 입력시 활성화 상태로 수정 * Fix : 프로필 이미지 yml 경로 수정 * Revert "Fix : 프로필 이미지 yml 경로 수정" This reverts commit 645a4f6847e946a780ee7a26f231ec7c69aba167. * Feat : 프로필 이미지 yml 경로 수정 * docs: application-common 추가 * Fix : 토큰 예외처리 수정 (#193) * Fix : 다이어리 장소 글자수 수정 (#194) * Fix : 비활성화 상태에서도 로그인 되도록 수정 (#195) * fix: home information order 절 수정 * fix: 좋아요 수 구하는 절 수정 * fix : 로그인 유저 상태 확인 수정 * fix: 좋아요 수 구하는 절 수정 Long -> Integer 로 수정 * fix: bookMark 했는지 구하는 절 수정 (#200) * fix: join -> 서브쿼리로 처리후 group by 수정 * Fix : 정보 카테고리 이름 추가 * Fix : 카테고리 이름 필드 추가 * Refactor : 성별입력시 유저 프로필 변경 * Fix : 유저 프로필이 디폴트 프로필일때만 변경 (#205) * fix: applicatns 부분 join -> 서브쿼리로 수정 * Fix : 마이페이지 모임 조회 오류 수정 (#207) * Fix : 삭제된 모임 조회되지 않도록 수정 * Fix : 모임 인원수 오류 수정 자기자신을 인원에 포함하지 않는 문제 여러명의 인원을 1명으로 인식하는 문제 * Fix : main ci시 jar 파일 문법 수정 * Fix : 카카오 회원탈퇴 오류 수정 , 카카오 추가정보 있을때 회원가입 (#210) * Feat : 카카오 추가정보 있을때 회원가입 * Fix : 카카오 회원탈퇴 오류 수정 성별이 필드가 비어있을때 조회 사용하는 로직 수정 * Feat : 네이버 oauth (#211) 회원가입, 로그인, 로그아웃, 회원탈퇴 * Refactor : 테스트 ci , 배포 ci 분리 (#212) * Refactor : 테스트 ci , 배포 ci 분리 * Fix : 빌드 캐시 비활성화 * Fix : 로그 출력 추가 * Feat : gradle package, wrapper 캐시 추가 * Fix : 개발서버 포트 변경 * Fix : ci 이름 수정 (#214) * Refactor : 테스트 ci , 배포 ci 분리 * Fix : 빌드 캐시 비활성화 * Fix : 로그 출력 추가 * Feat : gradle package, wrapper 캐시 추가 * Fix : 개발서버 포트 변경 * Fix : ci 이름 수정 --------- Co-authored-by: hyeonjaez Co-authored-by: Fiat_lux <50399586+hyeonjaez@users.noreply.github.com> Co-authored-by: SK\ssssk Co-authored-by: 노현진 --- .github/workflows/deploy.yml | 17 +++++-------- .github/workflows/test.yml | 48 ++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 11 deletions(-) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 05e2e3b..042bcc7 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,10 +1,8 @@ -name: Docker Image CI +name: deploy on: push: branches: [ "main", "develop" ] - pull_request: - branches: [ "main", "develop" ] jobs: build: @@ -27,21 +25,18 @@ jobs: echo "${{ secrets.APPLICATION_DEV }}" > ./src/main/resources/application-dev.yml echo "${{ secrets.APPLICATION_PROD }}" > ./src/main/resources/application-prod.yml echo "${{ secrets.APPLICATION_LOCAL }}" > ./src/main/resources/application-local.yml - echo "${{ secrets.APPLICATION_TEST }}" > ./src/main/resources/application-test.yml - - name: gradlew 실행 권한 부여 run: chmod +x ./gradlew - - name: 테스트 및 빌드하기 (main 브랜치) + - name: 빌드하기 (main 브랜치) if: github.ref == 'refs/heads/main' - run: ./gradlew clean build -PspringProfile=prod --warning-mode all --scan + run: ./gradlew clean build -x test -PspringProfile=prod --warning-mode all --scan - - name: 테스트 및 빌드하기 (develop 브랜치) + - name: 빌드하기 (develop 브랜치) if: github.ref == 'refs/heads/develop' run: | - ./gradlew clean test -PspringProfile=test - ./gradlew build -x test -PspringProfile=dev --warning-mode all --scan + ./gradlew clean build -x test -PspringProfile=dev --warning-mode all --scan - name: 빌드된 파일 이름 변경 run: mv ./build/libs/*SNAPSHOT.jar ./project.jar @@ -85,6 +80,6 @@ jobs: mkdir /home/ubuntu/solitour-server/current mv /home/ubuntu/solitour-server/tobe/project.jar /home/ubuntu/solitour-server/current/project.jar cd /home/ubuntu/solitour-server/current - sudo fuser -k -n tcp 8080 || true + sudo fuser -k -n tcp 8081 || true nohup java -jar -Dspring.profiles.active=dev project.jar > ./output.log 2>&1 & rm -rf /home/ubuntu/solitour-server/tobe diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..e466f8f --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,48 @@ +name: test + +on: + pull_request: + branches: [ "main", "develop" ] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Github Repository 에 올린 파일들을 볼러오기 + uses: actions/checkout@v4 + + - name: JDK 17 버전 설치 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + + - name: application.yml 파일 만들기 + run: | + mkdir -p ./src/main/resources + echo "${{ secrets.APPLICATION_YML }}" > ./src/main/resources/application.yml + echo "${{ secrets.APPLICATION_COMMON }}" > ./src/main/resources/application-common.yml + echo "${{ secrets.APPLICATION_TEST }}" > ./src/main/resources/application-test.yml + + + - name: gradlew 실행 권한 부여 + run: chmod +x ./gradlew + + - name: Gradle packages 캐시 + uses: actions/cache@v3 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle + + - name: Gradle wrapper 캐시 + uses: actions/cache@v3 + with: + path: ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} + + - name: 테스트 + run : ./gradlew clean test -PspringProfile=test --info + +