Skip to content

Commit

Permalink
Merge pull request #124 from Central-MakeUs/develop
Browse files Browse the repository at this point in the history
* rename: group 이름 변경

* chore: 멀티 모듈 프로젝트 구성

* fix: scanBasePackages 옵션 제거

* style: 주석 추가

* docs: ERD 초안 추가

* feat: 정상 응답에 대한 공통 응답 포맷 제작

* setting: 로컬 DB 개발환경 구축 (#9)

* style: 중복 코드 제거

* feat: 로컬 MySQL 환경 구축

* feat: 로컬 Redis 환경 구축 및 docker-compose 스크립트 작성

* docs: ERD 수정

* feat: 예외처리 응답에 대한 공통 응답 포맷 제작 (#10)

* feat: 공통 Exception 처리

* fix: Exception Stack Trace 추가

* deploy: CI 워크플로우 작성

* feature: 카카오 회원가입 구현 (#11)

* chore: submodule로 설정 파일 관리

* chore: clients 모듈 제거

* feat: 카카오 회원가입 구현

* chore: settings.gradle에서 clients 모듈 제거

* chore: p6spy 의존성 추가 및 출력 포맷 커스텀

* chore: Redis 설정 추가

* feat: KakaoAccount 도메인 추가

* deploy: ECR에 image push하는 스크립트 추가 및 서버 에러 수정 (#15)

* feat: health check API 추가

* remove: application-domain.yml 서브모듈로 이동

* feat: active profile 확인 API 추가

* fix: 카카오 access token이 받아와지지 않는 문제 해결

* feat: jpa와 redis repository 구분해주는 설정 추가

* chore: 서브모듈로부터 domain 모듈의 설정 파일 복사

* style: 주석 수정

* deploy: jib으로 ecr에 image push

* deploy: ECR에 image push하는 스크립트 추가

* deploy: CD 스크립트 트리거 조건 수정

* deploy: id-token 권한을 write으로 추가

* fix: access key를 사용하는 방법으로 AWS credentials 설정

* deploy: Elastic Beanstalk 배포 스크립트 추가

* deploy: CD 스크립트 문법 오류 수정

* chore: jib 빌드 파일 오류 수정

* docs: ERD 수정

* deploy: 이미지 아키텍처를 amd64로 변경

* remove: Docerrun.aws.json 제거

* deploy: EC2의 timezone 변경

* deploy: 80번 포트로 들어오는 요청을 8082번 포트로 전달

* deploy: Dockerrun.aws.json 다시 추가

* deploy: Github Actions 스크립트에서도 Dockerrun.aws.json 관련 명령어 추가

* fix: refresh token를 RDS에 저장하는 방식으로 수정

* chore: 초기 데이터 삽입을 위한 설정 추가

* rename: loginType 변수 이름을 provider로 변경

* feat: 카카오 로그인 구현

* feat: 존재하지 않는 URI에 접근할 경우에 대한 예외 처리 추가

* feat: JWT 재발급 구현

* feat: 카카오 회원탈퇴 구현

* docs: Swagger 연동 및 API 설명 추가 (#27)

* chore: gson 의존성 버전 업데이트

* chore: Swagger 관련 설정 추가

* docs: Swagger API 이름 추가

* docs: 회원가입 API provider 관련 설명 추가

* setting: 개발 서버 에러를 슬랙으로 알림 전송 (#30)

* remove: application-api.yml 제거 및 .gitignore 수정

* chore: slack appender 의존성 추가

* feat: logback.xml 추가

* chore: .gitignore 범위 수정

* fix: code 값이 enum 값과 같도록 수정 (#31)

* feat: 프로필 이미지 조회 구현

* setting: Controller 테스트 코드 작성을 위한 환경 세팅 (#35)

* test: Controller 테스트 코드 작성을 위해 필요한 코드 추가

* test: AdminController 테스트 코드 작성

* fix: JpaAuditing 관련 config Application 실행 코드로부터 분리

* feat: Application의 timezone을 Asia/Seoul로 설정

* fix: Spring Rest Docs 관련 코드 제거

* fix: Jib 빌드 시 테스트 코드 무시 명령 제거

* fix: 로그인 API response 변경 (#38)

* feat: Server Driven 관련 조회 API 구현 (#39)

* feat: Server Driven UI 관련 조회 API 구현 (박스 내부 디자인 제외)

* remove: data.sql .gitignore에 추가

* docs: 엔티티에 맞춰 ERD 컬럼 이름 변경

* fix: 편지지 디자인 조회 API LetterPaper와 매핑되도록 수정 (#40)

* feat: S3 Presigned URL 발급 구현 (#42)

* feat: S3 presigned URL 발급 구현

* refactor: SonarLint에 따라 BasicAWSCredentials를 바로 반환하도록 리팩토링

* feat: 선물박스 보내기 구현 (#43)

* rename: Server Driven UI 관련 도메인 클래스를 admin 패키지로부터 분리

* remove: 자주 사용하지 않는 예외 클래스 제거

* rename: NotSupportedException을 UnsupportedException으로 수정

* style: 공백 포맷팅

* feat: 선물박스 보내기 구현

* test: 선물박스 보내기 API Happy Case에 대한 Controller 테스트 코드 작성

* test: Service 테스트 코드 작성을 위한 환경 세팅

* test: 선물박스 보내기 API Happy Case에 대한 테스트 코드 작성

* docs: ERD 수정

* docs: Swagger 예시 추가

* docs: PR Template 수정

* rename: logback.xml을 logback-spring.xml로 변경

* chore: 빌드 시 submodule 파일을 복사하는 코드 수정

* docs: PR Template 수정

* setting: sentry 연동

* chore: logback.xml에 Sentry Appender 추가

* setting: flyway 연동 (#48)

* fix: 로그인 API 에러 수정 (#52)

* fix: 카카오 회원탈퇴 시 RefreshToken과 KakaoAccount 엔티티 제거

* fix: JWT 발급 시 RefreshToken 갱신 로직 수정

* refactor: findByGiftBoxId 메서드를 findByGiftBox 메서드로 변경

* fix: Member 엔티티의 status 컬럼을 String으로 저장

* chore: flyway 스크립트 업데이트

* docs: PR Template 변경

* chore: 스키마 변경에 따른 submodule 업데이트

* feat: 애플 소셜 로그인 기능 구현 (#53)

* feat: 애플 회원가입 구현

* refactor: append 메서드를 체이닝 방식으로 리팩토링

* feat: 애플 로그인 구현

* feat: 애플 회원탈퇴 구현

* style: 사용하지 않는 의존성 주입 제거

* fix: 애플 API 통신을 위해 @JsonNaming으로 snake case로 컬럼명 변환

* fix: 사용하지 않는 Transasctional 어노테이션 제거

* style: sonarLint에 따라 변수명 변경

* chore: apple revoke-uri 추가

* fix: 설정 파일에 맞게 키 값 수정

* chore: application-test.yml에 애플 uri 값 추가

* chore: flyway 스크립트 업데이트

* style: sonarLint에 따라 private 변수를 메서드 안으로 이동

* �fix: Swagger CORS 문제 해결 (#56)

* fix: Swagger https 설정 추가

* fix: 로컬에서 스웨거를 사용하기 위한 OpenAPIDefinition 추가

* style: 잘못 기입된 주석 수정

* fix: 애플로그인 예외 처리 세분화

* fix: apple client_secret 유효 기간 변경

* style: idToken 출력 로그 추가

* style: idToken 출력 로그 제거

* fix: ApplePublicKey 클래스에 ToString 어노테이션 추가

* deploy: beanstalk-deploy 버전 업데이트

* setting: common 모듈 생성

* remove: 사용하지 않는 Main 클래스 제거

* rename: exception 패키지를 common 모듈로 이동

* chore: common 모듈의 bootJar, jar 옵션 추가

* fix: Server Driven UI를 위한 API 응답값 수정 (#62)

* rename: Repository를 dao 패키지로 이동

* remove: 메시지 디자인 조회 API 제거

* fix: 편지지 조회 API를 편지 봉투 조회 API로 변경

* style: 변수명 표기법 변경

* test: 프로필 이미지 조회 API Controller 테스트 코드 작성

* fix: 박스 디자인 조회 API 응답값 수정

* rename: ProfileImage 엔티티를 member 패키지로 이동

* fix: 프로필 이미지 조회 API에 순서 추가

* remove: common 모듈 분리에 따른 import 변경

* fix: Box 엔티티에 박스 바닥 이미지 URL 추가

* remove: 사용하지 않는 import 제거

* test: Server Driven API Controller와 Service 테스트 코드 작성

* chore: 기획 변경에 따른 데이터 삽입 스크립트 변경

* deploy: 개발 서버 DB 동기화를 위한 flyway 스크립트 추가

* docs: ERD 수정

* setting: QueryDsl 환경 세팅 (#64)

* chore: Deprecated Gradle features warning 해결

* chore: QueryDsl 의존성 추가

* chore: QClass 디렉토리 gitignore에 추가

* feat: QueryDslConfig 클래스 추가

* feat: 스티커 조회 기능 구현 (#66)

* feat: 스티커 조회 기능 구현

* style: 공백 포맷팅

* docs: 스티커 조회 API lastStickerId 예시 변경

* feat: SliceResponse 커스텀

* chore: 스티커 UI 더미데이터 추가

* deploy: 개발 서버 DB 동기화를 위한 flyway 스크립트 추가

* docs: ERD 수정

* docs: 스티커 조회 API Swagger에 Pageable size만 명시

* fix: 선물박스 만들기 API 요청값 변경 (#67)

* fix: 선물박스 만들기 API 요청값 변경

* test: 선물박스 만들기 Controller, Service 테스트 코드 작성

* deploy: 개발 서버 DB 동기화를 위한 flyway 스크립트 추가

* chore: ERD 수정

* style: giftRequest의 imgUrl을 url로 변수 이름 변경 (#70)

* style: giftRequest의 imgUrl을 url로 변수 이름 변경

* style: 백엔드에서만 사용하는 API 스웨거에 설명 추가

* feat: Spring Security, JWT 관련 설정 추가 (#71)

* feat: SecurityConfig에 whitelist 명시

* feat: 테스트 회원가입 기능 추가

* fix: 임시 주석 제거 및 토큰 검증 과정에서 예외 발생 시 에러 로그 출력

* fix: ExpiredJwtException 출력 로그 레벨을 warn으로 변경

* deploy: timezone 설정 명령어에 sudo 추가

* chore: 로깅 dateformat 지정 및 timezone 명시

* fix: Server Driven UI 관련 API에 sequence 기준 정렬 조건 추가 (#76)

* chore: main, test 패키지의 data.sql을 하나로 통합

* fix: 박스 디자인 조회 API 정렬 조건 추가

* fix: 편지 봉투 디자인 조회 API 정렬 조건 추가

* fix: 프로필 이미지 조회 API 정렬 조건 추가

* fix: 스티커 조회 API 정렬 조건 추가

* fix: Music 엔티티에 sequence 추가

* fix: 패키 추천 음악 조회 API sequence 컬럼 및 정렬 조건 추가

* deploy: 테스트 회원가입 API 정상 동작을 위한 flyway 스크립트 작성

* style: application-test.yml과 중복된 classpath 명시 제거

* feat: 나의 프로필 조회 API 구현 (#80)

* feat: 나의 프로필 조회 API 구현

* test: 나의 프로필 조회 API Controller 테스트 코드 작성

* test: 나의 프로필 조회 API Service 테스트 코드 작성

* fix: 마이페이지 엔드 포인트를 케밥 케이스로 변경

* test: 마이페이지 엔드 포인트를 Controller 테스트 케이스에서도 케밥 케이스로 변경

* feat: 유튜브 URL 유효성 검증 API 구현 (#81)

* feat: 유튜브 URL 유효성 검증 API 구현

* fix: isPresent 메서드 부정을 isEmpty 메서드로 변경

* test: Controller 테스트 코드 실패 해결을 위해 YoutubeService MockBean 추가

* �fix: 선물박스 엔티티에 선물박스 이름 추가 (#85)

* fix: GiftBox 엔티티에 선물박스 이름 추가

* deploy: GiftBox 엔티티에 선물박스 이름 추가에 따른 flyway 스크립트 추가

* fix: 패키 추천 음악 조회 API에 제목 추가 (#86)

* �refactor: Receiver 엔티티 분리를 통한 GiftBox-Member 연관관계 변경 (#87)

* refactor: Receiver 엔티티 분리를 통한 GiftBox-Member 연관관계 변경

* deploy: 개발 DB 동기화를 위한 flyway 스크립트 추가

* docs: ERD 변경

* fix: 선물박스 만들기 API에서 선물이 없을 경우 Gift를 null로 저장 (#88)

* fix: gift가 null일 경우 Gift 객체를 null로 저장

* test: 선물이 없을 경우 선물박스 만들기 API Controller, Service 테스트 코드 작성

* fix: 선물박스 엔티티와 편지 봉투 엔티티 수정 (#89)

* rename: GiftBoxResponse를 GiftBoxIdResponse로 변경

* rename: GiftBoxResponse를 GiftBoxIdResponse로 변경

* fix: GiftBox 엔티티에 senderName, receiverName 추가

* fix: Envelope 엔티티에 borderColorCode 추가

* remove: 사용하지 않는 import 제거

* fix: GiftBox 엔티티에 열기 제한을 나타내는 enum 컬럼 추가

* fix: S3 Presigned URL 발급 시 파일 이름 인코딩 추가 (#91)

* feat: 선물박스 열어보기 API 구현 (#92)

* rename: GiftBoxResponse를 GiftBoxIdResponse로 변경

* rename: GiftBoxResponse를 GiftBoxIdResponse로 변경

* fix: GiftBox 엔티티에 senderName, receiverName 추가

* fix: Envelope 엔티티에 borderColorCode 추가

* remove: 사용하지 않는 import 제거

* fix: GiftBox 엔티티에 열기 제한을 나타내는 enum 컬럼 추가

* fix: giftBoxType을 지정하지 않아도 PRIVATE으로 저장되도록 변경

* docs: Swagger에 선물박스 만들기 API description 추가

* feat: 선물박스 열어보기 API 구현

* test: 선물박스 열어보기 API Controller 테스트 코드 작성

* docs: ERD envelope 테이블에 borderColorCode 추가

* refactor: 빌더 메서드 모듈화

* fix: 선물박스 열어보기 API PathVariable value 추가

* fix: 선물박스 만들기 로직 리팩토링, 선물박스 열어보기 예외처리 추가, 테스트 코드 작성

* feat: Swagger 에러 응답값 커스텀 어노테이션 구현 및 제작된 API에 에러 응답값 예시 추가 (#94)

* feat: Swagger 에러 응답값 커스텀 어노테이션 구현

* refactor: 사용하지 않는 인자 제거

* feat: 복수 개의 에러 응답값을 받을 수 있는 커스텀 어노테이션 구현

* remove: 사용하지 않는 ErrorCode 제거

* fix: ErrorCode 이름 변경

* remove: 사용하지 않는 ErrorCode, Exception 제거

* docs: API 에러 응답값 예시 추가

* refactor: Reader, Writer 클래스의 역할 분리 및 멀티 모듈과 패키지 구조 변경 (#97)

* style: stickerId 오타 수정

* rename: reader, writer를 모아둔 패키지명을 domain에서 adaptor로 변경

* refactor: reader, writer가 엔티티를 반환하고 Service에서 DTO로 변환하도록 변경

* rename: adaptor 패키지를 domain 모듈로 이동

* fix: @builder 사용 시 양방향 관계 엔티티가 초기화 될 수 있도록 @Builder.Default 어노테이션 추가

* rename: dao, domain 패키지 생성 및 Repository, Entity 클래스를 패키지로 이동

* feat: 보낸 선물박스 조회 API 구현 (#98)

* test: Repository 테스트 코드 환경 세팅

* feat: 보낸 선물박스 조회 API 구현 및 Controller, Service 클래스명 변경

* test: 보낸 선물박스 조회 관련 페이징 쿼리 메서드 테스트 코드 작성

* feat: 받은 선물박스 조회 API 구현 (#99)

* style: 잘못 작성된 주석 위치 수정

* style: 주석 추가

* docs: Swagger API 설명 수정

* fix: 사용하지 않는 인자 제거

* fix: Receiver 엔티티에서 받은 사람을 member로 변수명 변경

* test: 보낸 선물박스 조회 Repository 테스트 코드 리팩토링

* refactor: Receiver 빌더를 of 메서드로 모듈화

* style: 가짜 선물박스를 만드는 테스트 메서드 이름 변경

* feat: 받은 선물박스 조회 API 구현

* fix: Receiver 엔티티에서 받은 사람을 member로 변수명 변경

* hotfix: apple client_secret 유효 기간 변경

* hotfix: client_secret 출력 로그 추가

* hotfix: zoneId, localDateTime 출력 로그 추가

* hotfix: 사용하지 않는 로그 제거

* fix: 애플로그인 시 authorization_code 대신 identityToken을 받도록 로직 변경 (#104)

* fix: 애플로그인 시 authorization_code 대신 identityToken을 받도록 로직 변경

* deploy: Node.js 16 actions deprecated에 따른 action 버전 변경

* deploy: gradle build action 변경

* feat: 설정 링크 조회 API (#102)

* feat: 설정 링크 조회 API 구현

* test: 설정 링크 조회 API Controller 테스트 코드 작성

* test: 설정 링크 조회 API Service 테스트 코드 작성

* refactor: 정적 패토리 메서드명을 of에서 from으로 변경

* feat: 주고받은 선물박스 조회 API 구현 (#106)

* deploy: CD 스크립트 action 스크립트 버전 업데이트

* fix: 받은 선물박스 조회 시 giftBoxDate로 받은 날짜를 반환하도록 변경

* feat: 주고받은 선물박스 조회 API 구현

* refactor: 주고받은 선물 조회 API 로직 리팩토링

* test: lastGiftBoxId의 표기법 및 타입 변경

* fix: 선물박스를 보낸 사람은 항상 선물박스를 열 수 있도록 수정 (#107)

* fix: 선물박스를 보낸 사람은 항상 선물박스를 열 수 있도록 수정

* chore: Gradle deprecated warning 해결

* fix: 나의 프로필 조회 API에 provider 추가 (#108)

* fix: 프로필 조회 API에 provider 추가

* chore: data.sql 더미데이터 값 변경

* docs: 나의 프로필 조회 API 응답 예시 추가

* docs: 설정 링크 조회 API 응답 예시 추가

* docs: ERD에 setting 테이블 추가

* deploy: CI 스크립트 gradle build 명령어에 scan 옵션 추가

* deploy: CI 스크립트 gradle build 명령어에 scan 옵션 제거

* fix: 요청 값 유효성 검증 추가 (#111)

* feat: MethodArgumentNotValidException 예외 핸들러 추가

* fix: 회원가입 시 닉네임 글자 수 제한 추가

* fix: 선물박스 만들기 API 글자 수 제한 추가

* docs: Swagger에서 로그인 API의 provider에 allowableValues 옵션 추가

* refactor: @RequestParam에서 required=true 제거

* test: 테스트 코드에서 받는 사람, 보내는 사람 글자 수 제한에 맞도록 이름 변경

* fix: 서버 드리븐 UI 확정에 따른 박스 이미지 관련 API 수정 (#113)

* fix: 박스 UI 확정에 따른 엔티티, 응답값 변경

* chore: bottom_img_url 컬럼 제거 flyway 스크립트 추가

* fix: 주고받은 선물박스 API에 받은 사람 이름, 타입 추가 (#115)

* fix: 주고받은 선물박스에 받는 사람 이름 추가 및 Swagger 예시 추가

* fix: 주고받은 선물박스 API 응답값에 선물박스 타입 추가

* fix: 편지 봉투 UI에 봉투 색상 코드 및 투명도 추가 (#118)

* rename: flyway 스크립트 파일명 오타 수정

* fix: 편지 봉투 UI에 봉투 색상과 투명도 데이터 추가

* deploy: CI 스크립트에 Gradle 병렬 빌드 옵션 추가

* deploy: CD 스크립트에 job 이름 자세하게 작성

* fix: 선물박스 열기 API에 boxTop 추가 (#120)

* deploy: dev, prod 서버 Actions CD 스크립트 분리

* deploy: prod 서버 logback 에러를 슬랙, Sentry로 알림 전송

* test: 빌드 실패를 해결하기 위해 lastGiftBoxId 변경

* chore: sentry-logback 의존성 버전 업그레이드

* deploy: logback에 Sentry DSN 환경변수 적용
  • Loading branch information
leeeeeyeon authored Feb 8, 2024
2 parents b4bf5e6 + 322a936 commit fc2fbf7
Show file tree
Hide file tree
Showing 214 changed files with 9,295 additions and 37 deletions.
3 changes: 3 additions & 0 deletions .ebextensions/00-set-timezone.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
commands:
set_time_zone:
command: sudo ln -f -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
5 changes: 3 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
## 📚 Reference

## ✅ Check List
- [ ] 코드가 정상적으로 컴파일되나요?
- [ ] 테스트 코드를 통과했나요?

- [ ] DB 스키마가 일치하는지 확인했나요?
- [ ] SonarLint를 반영하여 코드를 수정했나요?
- [ ] merge할 브랜치의 위치를 확인했나요?
- [ ] Label을 지정했나요?
67 changes: 67 additions & 0 deletions .github/workflows/packy-cd-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: packy API Dev Server - CD

on:
push:
branches:
- develop

permissions:
contents: read

jobs:
CD:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.ACTION_TOKEN }}
submodules: true

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Setup Gradle
uses: gradle/gradle-build-action@v3

- name: Build with Gradle & Upload Image to ECR
run: ./gradlew -Pdev clean jib

- name: Get current time
uses: josStorer/get-current-time@v2
id: current-time
with:
format: YYYYMMDD_HH-mm-ss
utcOffset: "+09:00"

- name: Generate deployment package
run: |
mkdir -p deploy/.platform/nginx/conf.d
cp Dockerrun.aws.dev.json deploy/Dockerrun.aws.json
cp .platform/nginx/conf.d/proxy.conf deploy/.platform/nginx/conf.d/proxy.conf
cd deploy && zip -r deploy.zip .
- name: Beanstalk Deploy
uses: einaregilsson/beanstalk-deploy@v21
with:
aws_access_key: ${{ secrets.AWS_ACCESS_KEY }}
aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
application_name: packy-dev-beanstalk
environment_name: Packy-dev-beanstalk-env
version_label: packy-dev-${{steps.current-time.outputs.formattedTime}}
region: ${{ secrets.AWS_REGION }}
deployment_package: deploy/deploy.zip
wait_for_environment_recovery: 200
67 changes: 67 additions & 0 deletions .github/workflows/packy-cd-prod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: packy API Prod Server - CD

on:
push:
branches:
- main

permissions:
contents: read

jobs:
CD:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.ACTION_TOKEN }}
submodules: true

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Setup Gradle
uses: gradle/gradle-build-action@v3

- name: Build with Gradle & Upload Image to ECR
run: ./gradlew -Pprod clean jib

- name: Get current time
uses: josStorer/get-current-time@v2
id: current-time
with:
format: YYYYMMDD_HH-mm-ss
utcOffset: "+09:00"

- name: Generate deployment package
run: |
mkdir -p deploy/.platform/nginx/conf.d
cp Dockerrun.aws.prod.json deploy/Dockerrun.aws.json
cp .platform/nginx/conf.d/proxy.conf deploy/.platform/nginx/conf.d/proxy.conf
cd deploy && zip -r deploy.zip .
- name: Beanstalk Deploy
uses: einaregilsson/beanstalk-deploy@v21
with:
aws_access_key: ${{ secrets.AWS_ACCESS_KEY }}
aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
application_name: packy-prod-beanstalk
environment_name: Packy-prod-beanstalk-env
version_label: packy-prod-${{steps.current-time.outputs.formattedTime}}
region: ${{ secrets.AWS_REGION }}
deployment_package: deploy/deploy.zip
wait_for_environment_recovery: 200
31 changes: 31 additions & 0 deletions .github/workflows/packy-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: packy API Server - CI

on:
pull_request:
branches:
- main
- develop

permissions:
contents: read

jobs:
CI:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.ACTION_TOKEN }}
submodules: true

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3

- name: Run build with Gradle Wrapper
run: ./gradlew clean build --parallel
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,16 @@ out/

### VS Code ###
.vscode/

### Secrets Managing wit submodule ###
packy-api/src/main/resources/*.yml
packy-api/src/main/resources/*.p8
packy-api/src/main/resources/*.properties

packy-api/src/test/resources/*.sql
packy-domain/src/main/resources/*.yml
packy-domain/src/main/resources/*.sql
packy-infra/src/main/resources/*.yml

### QueryDsl QClass ###
packy-domain/src/main/generated
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "packy-submodule"]
path = packy-submodule
url = https://github.com/leeeeeyeon/packy-submodule.git
13 changes: 13 additions & 0 deletions .platform/nginx/conf.d/proxy.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# nginx의 기본 업로드 제한 해제
client_max_body_size 0;

server {
listen 80;

location / {
proxy_pass http://localhost:8082;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
13 changes: 13 additions & 0 deletions Dockerrun.aws.dev.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "714646531644.dkr.ecr.ap-northeast-2.amazonaws.com/packy-dev:latest",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "8082",
"HostPort": "8082"
}
]
}
13 changes: 13 additions & 0 deletions Dockerrun.aws.prod.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "714646531644.dkr.ecr.ap-northeast-2.amazonaws.com/packy-prod:latest",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "8083",
"HostPort": "8083"
}
]
}
46 changes: 38 additions & 8 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,52 @@ plugins {
id 'io.spring.dependency-management' version '1.1.4'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
sourceCompatibility = '17'
}

repositories {
mavenCentral()
// 루트 프로젝트를 포함해 하위 프로젝트 전체에 영향을 주는 설정
allprojects {
group = 'com.dilly'
version = '0.0.1-SNAPSHOT'

repositories {
mavenCentral()
}

// 공통 dependencies
dependencies {
}
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// 해당 프로젝트에 포함된 모든 모듈에 영향을 주는 설정
subprojects {
apply plugin: 'java'
apply plugin: 'java-library'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

dependencies {
// basic
implementation 'org.springframework.boot:spring-boot-starter'

// lombok
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

implementation 'com.fasterxml.jackson.core:jackson-databind'

// test
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'com.h2database:h2'

// swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0'
}
}

tasks.named('test') {
useJUnitPlatform()
}

bootJar.enabled = false
Loading

0 comments on commit fc2fbf7

Please sign in to comment.