Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.0.0 정식 배포 #244

Merged
merged 188 commits into from
Dec 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
188 commits
Select commit Hold shift + click to select a range
a40357d
chore: sonarcloud 및 jacoco 세팅
Shin-Jae-Yoon Oct 27, 2023
2b6a6f0
chore: checkstyle 세팅
Shin-Jae-Yoon Oct 27, 2023
919bc4e
chore: gitignore 수정
Shin-Jae-Yoon Oct 27, 2023
7306cca
docs: PR 템플릿 수정
kmebin Oct 27, 2023
0aae2cc
feat: 공통된 클래스 추가 작업 (#4)
ymkim97 Oct 27, 2023
4e1f0cc
fix: intellij-formatter line-separator (#10)
Shin-Jae-Yoon Oct 29, 2023
136beea
feat: 회원 Authorization Grant와 페이지 반환 기능 구현 (#18)
parksey Oct 31, 2023
ec1bc6d
feat: 방 생성, 수정 기능 구현 (#20)
ymkim97 Nov 1, 2023
929acc5
feat: 벌레 조회 기능 구현 (#21)
kmebin Nov 1, 2023
e1484c7
feat: 상품 목록 조회 기능 구현 (#22)
kmebin Nov 1, 2023
7c252fe
feat: Authorization Server로 부터 토큰 발급 기능 추가 (#24)
parksey Nov 2, 2023
8177609
feat: 콕 찌르기 알림 서비스 기능 구현 (#26)
hongdosan Nov 3, 2023
b3bd297
feat: 방 참여, 나가기 기능 구현 (#28)
ymkim97 Nov 3, 2023
391105f
feat: 방 수정에 필요한 필드 추가 (#36)
ymkim97 Nov 3, 2023
2c5291b
feat: ec2 dev 서버 배포 구현 (#40)
Shin-Jae-Yoon Nov 3, 2023
7ad2629
hotfix: submodule mysql 수정
Shin-Jae-Yoon Nov 3, 2023
db829cb
feat: social 회원 토큰 조회 기능 추가 (#37)
parksey Nov 6, 2023
0201932
feat: 아이템 목록 조회 기능 구현 (#41)
kmebin Nov 6, 2023
9efcd8c
feat: 콕 찌르기 API 구현 (feat. RestDoc, Embedded Redis) (#43)
hongdosan Nov 6, 2023
40e5c1a
feat: 방 상세 정보 조회 기능 구현 (#44)
ymkim97 Nov 6, 2023
66eda55
feat: 아이템 적용 기능 구현 (#45)
kmebin Nov 7, 2023
3305dff
refactor: 방 관련 기능 리팩터링 (#49)
ymkim97 Nov 7, 2023
316dafd
feat: 회원 생성 및 로그인 응답 기능 구현 (#47)
parksey Nov 7, 2023
35bac08
feat: 인증 타임에 따른 알림 기능 구현 (#50)
hongdosan Nov 7, 2023
c40b8bb
chore: config update (#51)
parksey Nov 8, 2023
51ccfaa
feat: 콕 찌르기 여부를 확인하는 기능 구현 및 테스트 (#53)
hongdosan Nov 8, 2023
0a25dd4
feat: 아이템 구매 기능 구현 (#54)
kmebin Nov 9, 2023
e52adc5
feat: 쿠폰 발행 기능 구현 및 테스트 (#57)
hongdosan Nov 9, 2023
4aeb539
feat: 쿠폰 삭제 기능 구현 (#58)
hongdosan Nov 10, 2023
b5f9a45
feat: 특정 쿠폰 및 상태에 따른 쿠폰 조회 기능 구현 및 테스트 (#60)
hongdosan Nov 12, 2023
0d084fa
feat: 회원 annotation 기능 추가 및 테스트 인터페이스 제공 (#62)
parksey Nov 13, 2023
43d18ce
feat: 루틴 인증 및 이미지 업로드 기능 구현 (#63)
Shin-Jae-Yoon Nov 13, 2023
baf4703
feat: healthCheck path 추가 (#66)
parksey Nov 13, 2023
b55c202
Revert "feat: healthCheck path 추가 (#66)" (#71)
parksey Nov 13, 2023
ec1ec31
fix: config 최신화 (#72)
parksey Nov 13, 2023
1446062
refactor: 패키지 분리 (#73)
hongdosan Nov 13, 2023
ca77e2b
refactor: 방 관련 서비스 분리 (#79)
ymkim97 Nov 14, 2023
622bc97
feat: 방장 위임 기능 구현 (#81)
ymkim97 Nov 14, 2023
a3ac321
feat: 오늘 보상 벌레 조회 기능 구현 (#80)
kmebin Nov 14, 2023
33a691b
refactor: 쿠폰 및 알림 Authorization Member 적용 리팩터링 (#82)
hongdosan Nov 14, 2023
e6d7a75
fix: 인프라 ci/cd 버그 해결 (#84)
Shin-Jae-Yoon Nov 14, 2023
a639851
hotfix: env 파일 생성 코드 수정
Shin-Jae-Yoon Nov 14, 2023
b984dd0
hotfix: env 파일 생성 코드 수정
Shin-Jae-Yoon Nov 14, 2023
c1ce28b
hotfix: 파일 cd 코드 수정
Shin-Jae-Yoon Nov 14, 2023
2500f8c
hotfix: 파일 cd 코드 수정
Shin-Jae-Yoon Nov 14, 2023
261f698
feat: 방 추방 기능 구현 (#86)
ymkim97 Nov 14, 2023
c050804
refactor: 아이템/상품 컨트롤러 테스트 리팩토링 및 @CurrentMember 적용 (#87)
kmebin Nov 14, 2023
1d63d81
hotfix: kakao path 제외 추가
Shin-Jae-Yoon Nov 14, 2023
c28a033
refactor: 방 컨트롤러 @CurrentMember 적용, 통합 테스트 리팩토링 (#89)
ymkim97 Nov 15, 2023
7da9d5a
style: 쿠폰 및 알림 테스트 패키지 분리 (#90)
hongdosan Nov 15, 2023
b7ca249
feat: 토큰 redis 저장 (#91)
parksey Nov 15, 2023
b06566b
feat: 로그아웃 기능 추가 (#94)
parksey Nov 16, 2023
88ba4fc
fix: config 수정 (#98)
parksey Nov 16, 2023
a7dedc4
feat: 참여중인 방 목록 조회 (#95)
ymkim97 Nov 16, 2023
17247e1
hotfix: redis config 파일 수정
Shin-Jae-Yoon Nov 16, 2023
58d5280
refactor: 벌레 컨트롤러 및 테스트 패키지 구조 변경 (#97)
kmebin Nov 16, 2023
63030bb
feat: 아이템 목록 조회 Response에 현재 적용된 아이템 속성 추가 (#100)
kmebin Nov 17, 2023
e9c8238
feat: 방 참여 기록 조회 기능 구현 (#101)
Shin-Jae-Yoon Nov 17, 2023
5b1a4e8
feat: profile 환경에 따른 cookie 설정 분리 및 config 업데이트 (#102)
parksey Nov 17, 2023
f12569e
hotfix: config update
Shin-Jae-Yoon Nov 17, 2023
a4c2f2f
refactor: 쿠폰, 알림 및 토큰 패키지 및 클래스명 변경 (#105)
hongdosan Nov 20, 2023
8d16e9d
feat: 벌레 상품 구매 기능 구현 (#107)
kmebin Nov 20, 2023
a18da2f
feat: 방 전체 목록 조회 기능 구현 (#109)
ymkim97 Nov 20, 2023
bd73795
feat: 결제 요청 기능 구현 (#113)
kmebin Nov 20, 2023
5b7b46a
feat: 쿠폰 발급 요청 기능 구현 (#114)
hongdosan Nov 20, 2023
8e62640
feat: 방 상세 정보 조회 기능 추가 변경 (#117)
ymkim97 Nov 20, 2023
cf6070f
feat: 카카오 로그인 API(/members/login/kakao/oauth) Get -> Post 변경 (#118)
parksey Nov 20, 2023
fb060f9
feat: 방 검색 기능 구현 (#121)
Shin-Jae-Yoon Nov 20, 2023
923e5d8
style: 쿠폰 및 노션 메서드, 변수, 클래스명 변경 (#122)
hongdosan Nov 21, 2023
aba571f
feat: 방 수정 전 정보 불러오기 기능 구현 (#128)
ymkim97 Nov 21, 2023
3a013b7
refactor: 사용하지 않는 API 제거 및 코드 스타일 수정 (#129)
kmebin Nov 21, 2023
0685cc4
feat : 회원 삭제 기능 추가 (#131)
parksey Nov 21, 2023
36ff9e1
feat: Fcm Token 저장 기능 구현 (#132)
hongdosan Nov 21, 2023
f1e51bc
feat: CouponWallet 엔티티 & 레포지토리 구현 (#134)
hongdosan Nov 21, 2023
12275e0
refactor : 쿠폰 발행 기간 하루로 변경 및 쿠폰 정보 오픈 날짜 컬럼 추가 (#136)
hongdosan Nov 23, 2023
da84226
refactor: 회원 탈퇴 로직 변경 (#139)
parksey Nov 23, 2023
0d29e0a
feat: 벌레 상품 구매 시 CouponWallet 적용 (#141)
kmebin Nov 23, 2023
6876104
feature: 회원 정보 조회 기능 추가 (#142)
parksey Nov 23, 2023
aedcd68
refactor: nginx 설정 파일 리포맷팅
Shin-Jae-Yoon Nov 24, 2023
9e35528
hotfix: CorsFilter 추가
Shin-Jae-Yoon Nov 24, 2023
4b1c2bb
refactor: 방/루틴 전체 리팩토링 (#143)
Shin-Jae-Yoon Nov 24, 2023
0756c4d
feat: 쿠폰 발급 요청 및 대기열 사용자 쿠폰 발급 처리 구현 (#146)
hongdosan Nov 26, 2023
5e6f7d2
refactor: 쿠폰, 알림 테스트 접근 제어자, 메서드명, 클래스명 변경 (#148)
hongdosan Nov 26, 2023
43efc00
feat: 쿠폰 보관함 조회 기능 구현 (#149)
hongdosan Nov 26, 2023
78d4738
feat: 회원 정보 수정 API 추가 (#151)
parksey Nov 26, 2023
99e9afe
feat: 결제 승인 기능 구현 (#154)
kmebin Nov 27, 2023
cff2586
feat: 벌레 내역 조회 기능 구현 (#155)
kmebin Nov 27, 2023
92b1592
feat: 방 인증, 입장 동시성 처리 (#157)
ymkim97 Nov 27, 2023
6bba643
hotfix: develop-cd docker 추가
Shin-Jae-Yoon Nov 27, 2023
da36a04
feat: 방/회원/인증 신고 기능 추가 (#158)
parksey Nov 27, 2023
2c7287d
hotfix: config 업데이트
Shin-Jae-Yoon Nov 27, 2023
076e022
feat: 쿠폰 사용 기능 구현 (#160)
hongdosan Nov 27, 2023
c1e925e
feat: 미참여자의 방 정보 조회 기능 (#161)
ymkim97 Nov 27, 2023
a8a32bc
fix: noskin image 변경 (#162)
parksey Nov 27, 2023
d03feb3
feat: 벌레 보상/충전/사용 시 내역 저장 로직 추가 (#165)
kmebin Nov 28, 2023
bec5144
feat: 아이템 이미지 버전 추가 및 방 배경 업데이트 (#167)
kmebin Nov 28, 2023
448dc45
fix: no skin image 버그 해결 (#168)
parksey Nov 28, 2023
e144759
hotfix: schema, item 등록
Shin-Jae-Yoon Nov 28, 2023
0326137
hotfix: config 수정
Shin-Jae-Yoon Nov 28, 2023
ecd65d2
hotfix: sql 업데이트
Shin-Jae-Yoon Nov 28, 2023
eeda751
hotfix: item inventory 쿼리 수정
Shin-Jae-Yoon Nov 28, 2023
b9d23a6
hotfix: config admin key 업데이트
Shin-Jae-Yoon Nov 28, 2023
eb6b566
hotfix: config sql init none
Shin-Jae-Yoon Nov 28, 2023
bcda782
hotfix: config sql init never
Shin-Jae-Yoon Nov 28, 2023
25932fb
refactor: 실시간 선착순 쿠폰 발급 기능 리팩터링 (#169)
hongdosan Nov 29, 2023
33fd2a8
fix: Base64관련 디코딩 코드 변경 -> Base64Url (#173)
parksey Nov 29, 2023
11aca2e
hotfix: sql init 방식 변경
Shin-Jae-Yoon Nov 29, 2023
b19243e
hotfix: docker-compose mysql
Shin-Jae-Yoon Nov 29, 2023
ed724f0
hotfix: docker-compose mysql
Shin-Jae-Yoon Nov 29, 2023
bbf3974
fix: 방장 자신에 대한 추방 버그 (#177)
ymkim97 Nov 29, 2023
9c086d1
Fix/#175 fix member delete error (#178)
parksey Nov 29, 2023
6a6ced1
refactor: 쿠폰, 알림 코드 개선 (#180)
hongdosan Nov 29, 2023
458e67b
fix: 아이템 선택 시 멤버 기본 스킨 이미지 업데이트 (#182)
kmebin Nov 29, 2023
d20bf17
style: FCM Token Log 생성 (#183)
hongdosan Nov 29, 2023
61917fd
fix: 방장 방 나가기 코드 수정 (#184)
Shin-Jae-Yoon Nov 29, 2023
6a39b9d
hotfix: 인증 방식 변경
ymkim97 Nov 29, 2023
7a5b178
hotfix: 방장 방 삭제 버그
ymkim97 Nov 29, 2023
bd1c3b6
fix: fcm 토큰 삭제 기능 추가 (#185)
parksey Nov 29, 2023
3408228
fix: 토스 결제 승인 실패 시 예외 처리 (#188)
kmebin Nov 29, 2023
95d0256
fix: 토스 승인 API 요청 시 Basic 인증 헤더로 변경
kmebin Nov 29, 2023
49b12fb
fix: ModelAttribute로 방식 변경 (#193)
Shin-Jae-Yoon Nov 30, 2023
5f07beb
fix: 토스 결제 승인 성공/실패 시 결과 반영 안되는 이슈 해결 (#194)
kmebin Nov 30, 2023
70de15b
feat: ranking system 구현 (#189)
parksey Nov 30, 2023
49acb0b
fix: record를 class로 바꿔서 바인딩 해결 (#195)
Shin-Jae-Yoon Nov 30, 2023
fb8eb23
fix: approvedAt 제거 (#197)
kmebin Nov 30, 2023
e8cac53
fix: 벌레 0마리인 경우 내역 저장되지 않도록 수정 (#199)
kmebin Nov 30, 2023
a280159
chore: 결제 실패 처리 로직에 Transactional 적용
kmebin Nov 30, 2023
245db4c
refactor: 방 상세 정보에 방 생성 날짜시간 추가 (#201)
ymkim97 Nov 30, 2023
154b7b3
fix: ObjectMapper 수정 (#202)
parksey Nov 30, 2023
b0ebebe
refactor: 알림 메시지 형식 변경 (#203)
hongdosan Nov 30, 2023
cc7f0d7
fix: ObjectMapper 삭제 실패 수정 (#204)
parksey Nov 30, 2023
2eeb477
hotfix: 알림 메시지 내용 변경 및 item-data 쿼리 추가
hongdosan Nov 30, 2023
0e97420
refactor: infra 디렉토리 생성 및 리팩터링 (#206)
Shin-Jae-Yoon Nov 30, 2023
8d7d3ef
refactor: infra 디렉토리 생성 및 리팩터링 (#207)
Shin-Jae-Yoon Nov 30, 2023
8e4cc3a
refactor: infra 디렉토리 생성 및 리팩터링 (#208)
Shin-Jae-Yoon Nov 30, 2023
8af2700
hotfix: Dockerfile copy 수정
Shin-Jae-Yoon Nov 30, 2023
4756d60
hotfix: deploy-cd Dockerfile 경로 수정
Shin-Jae-Yoon Nov 30, 2023
56386e8
hotfix: deploy-cd 쉘 스크립트 수정
Shin-Jae-Yoon Nov 30, 2023
a806cbd
hotfix: nginx 로깅 docker-compose 연결
Shin-Jae-Yoon Nov 30, 2023
90b33cd
hotfix: String to Long Error 수정
hongdosan Nov 30, 2023
e1e7477
fix: MaxUploadSizeExceededException 예외 던지기 (#212)
Shin-Jae-Yoon Nov 30, 2023
109e04c
fix: 0시 인증 방에서 인증이 안되는 버그 수정 (#213)
ymkim97 Nov 30, 2023
0fd11b3
hotfix: 쿠폰 발급이 안되는 버그 수정
hongdosan Nov 30, 2023
7f9dc7c
hotfix: nginx client 파일 크기 제한 수정
Shin-Jae-Yoon Nov 30, 2023
aa8c32f
hotfix: 쿠폰큐 비어있을 시, 발생하는 버그 수정
hongdosan Dec 1, 2023
ed0a711
hotfix: 쿠폰 발급 횟수 버그 수정
hongdosan Dec 1, 2023
39705ed
hotfix: 스웨거 도입
hongdosan Dec 1, 2023
ee34964
hotfix: 스웨거 버그 수정
hongdosan Dec 1, 2023
ae751fb
feat: 예외 발생 시 슬랙 연동 구현 (#215)
kmebin Dec 1, 2023
6eec958
fix: 방 수정에서 루틴 수정 제외 (#217)
ymkim97 Dec 1, 2023
cc4056e
feat: admin login (#216)
parksey Dec 1, 2023
532c348
hotfix: mysql 테이블 init 업데이트
Shin-Jae-Yoon Dec 1, 2023
d608d04
hotfix: config 업데이트
Shin-Jae-Yoon Dec 1, 2023
b672371
hotfix: 00시 인증 타임 수정
Shin-Jae-Yoon Dec 1, 2023
bd3fb6b
refactor: 방 인증 기획 관련 수정 (#219)
ymkim97 Dec 2, 2023
cf650c4
fix: 인증된 참여자의 방 나가기 후 방 정보 불러오기 안되는 버그 해결 (#221)
ymkim97 Dec 2, 2023
4e69376
hotfix: 쿠폰 메시지 수정
hongdosan Dec 2, 2023
a500b86
fix: 방의 인증 시간에는 입장하지 못하도록 수정 (#223)
ymkim97 Dec 2, 2023
96ccb1b
fix: Room soft delete로 변경 (#226)
ymkim97 Dec 2, 2023
a78b82f
fix: 참여자 목록이 복사되는 버그 해결 (#228)
ymkim97 Dec 2, 2023
9e81987
hotfix: distinct 추가
ymkim97 Dec 2, 2023
12b5f08
fix: 기여도 버그 해결 (#230)
ymkim97 Dec 2, 2023
eaaad58
fix: admin token (#231)
parksey Dec 3, 2023
dab0c58
fix: 인증율 하락 버그 수정 (#233)
ymkim97 Dec 3, 2023
afab121
fix: admin token fix (#234)
parksey Dec 3, 2023
63c7b2d
hotfix: 서브 도메인 설정 오류 변경
parksey Dec 3, 2023
a90afcb
hotfix: 서브 도메인 관련 기능 rollback
parksey Dec 3, 2023
6232842
feat: 에러 로그 슬랙 연동 구현 (#237)
kmebin Dec 3, 2023
42a2fa8
fix: admin token fix (#235)
parksey Dec 3, 2023
e89c22d
hotfix: 서브 도메인 변경
parksey Dec 3, 2023
fda78e1
fix: date equals 적용 (#239)
ymkim97 Dec 3, 2023
a4a14ff
feat: exception AOP 로그 추가 (#241)
ymkim97 Dec 3, 2023
8917d5b
refactor: 방, filter, aop 수정 (#243)
ymkim97 Dec 3, 2023
fc679b2
hotfix: date equals 적용
ymkim97 Dec 3, 2023
1e44578
fix: 회원 삭제에 대한 참여자 목록 조회 기능 변경
parksey Dec 3, 2023
6ecc006
Merge branch 'develop' of https://github.com/team-moabam/moabam-BE in…
parksey Dec 3, 2023
7d34808
feat: sql 수정
parksey Dec 3, 2023
29c5a92
refactor: 벳지 init sql 수정
ymkim97 Dec 3, 2023
1ea152c
refactor: 방 이미지 정보 변경
ymkim97 Dec 3, 2023
8b60ff5
fix: 방의 exp 보내는 방법 변경
ymkim97 Dec 3, 2023
6de2280
hotfix: 회원 삭제 로직 변경
parksey Dec 3, 2023
c370913
refactor: develop 브랜치 merge
parksey Dec 3, 2023
711f4d2
hotfix: 랭킹 조회 쿼리 및 방 조회 수정
parksey Dec 3, 2023
0f15eba
feat: 운영서버 배포 구현
Shin-Jae-Yoon Dec 3, 2023
fed1850
fix: 운영서버 배포 cd 수정
Shin-Jae-Yoon Dec 3, 2023
d4b5682
fix: log AOP 제거 및 SlackExceptionHandler 수정
kmebin Dec 3, 2023
90dbac7
chore: config 업데이트
kmebin Dec 3, 2023
5cb4c14
Merge branch 'main' into develop
Shin-Jae-Yoon Dec 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 6 additions & 6 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<!-- PR 제목은 커밋 메세지 컨벤션 형식으로 작성해주세요 ex) feat: 유저 정보 조회 API 구현 -->
## 📋 Checklist

## 🧩 이슈 번호 <!-- 이슈 번호를 작성해주세요 ex) #11 -->

- #이슈번호
- [ ] 🔀 PR 제목의 형식을 잘 작성했나요? (e.g. `feat: 유저 조회 기능 구현`)
- [ ] 🏷️ 라벨, 프로젝트, 마일스톤은 등록했나요?
- [ ] 🧹 코드 스멜은 해결했나요?

## ✅ 작업 사항
## 🧩 이슈 번호 <!-- 이슈 번호를 작성해주세요 ex) #11 -->

- [ ] 작업 내용
- close #이슈번호

## 👩‍💻 공유 포인트 및 논의 사항
88 changes: 47 additions & 41 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,46 +1,52 @@
name: ci

on:
pull_request:
branches: [ "main", "develop" ]
pull_request:
branches: [ "main", "develop" ]

jobs:
build:
name: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: JDK 17 셋업
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'corretto'

- name: Gradle 캐싱
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: Gradle Grant 권한 부여
run: chmod +x gradlew

- name: SonarCloud 캐싱
uses: actions/cache@v3
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar

- name: 빌드 및 분석
run: ./gradlew build jacocoTestReport sonar --info --stacktrace
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_CLOUD_TOKEN }}
build:
name: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: true
token: ${{ secrets.MOABAM_SUBMODULE_KEY }}

- name: JDK 17 셋업
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'corretto'

- name: Gradle 캐싱
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: Gradle Grant 권한 부여
run: chmod +x gradlew

- name: 테스트용 MySQL 도커 컨테이너 실행
run: |
sudo docker run -d -p 3305:3306 --env MYSQL_DATABASE=moabam --env MYSQL_ROOT_PASSWORD=1234 mysql:8.0.33

- name: SonarCloud 캐싱
uses: actions/cache@v3
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar

- name: 빌드 및 분석
run: ./gradlew build jacocoTestReport sonar --info --stacktrace
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_CLOUD_TOKEN }}
175 changes: 175 additions & 0 deletions .github/workflows/develop-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
name: develop-CD

on:
push:
branches: [ "develop" ]

permissions:
contents: write

jobs:
move-files:
name: move-files
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
token: ${{ secrets.MOABAM_SUBMODULE_KEY }}

- name: Github Actions IP 획득
id: ip
uses: haythem/[email protected]

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

- name: Github Actions IP 보안그룹 추가
run: |
aws ec2 authorize-security-group-ingress --group-id ${{ secrets.AWS_DEV_SG_ID }} --protocol tcp --port 22 --cidr ${{ steps.ip.outputs.ipv4 }}/32

- name: 디렉토리 생성
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_DEV_INSTANCE_HOST }}
port: 22
username: ${{ secrets.EC2_DEV_INSTANCE_USERNAME }}
key: ${{ secrets.EC2_DEV_INSTANCE_PRIVATE_KEY }}
script: |
mkdir -p /home/ubuntu/moabam/

- name: Docker env 파일 생성
run:
cp src/main/resources/config/dev.env ./infra/.env

- name: 서버로 전송 기본 파일들 전송
uses: appleboy/scp-action@master
with:
host: ${{ secrets.EC2_DEV_INSTANCE_HOST }}
port: 22
username: ${{ secrets.EC2_DEV_INSTANCE_USERNAME }}
key: ${{ secrets.EC2_DEV_INSTANCE_PRIVATE_KEY }}
source: "infra/mysql/*, infra/nginx/*, infra/scripts/*.sh, !infra/scripts/deploy-prod.sh, infra/docker-compose-dev.yml"
target: "/home/ubuntu/moabam"

- name: 파일 세팅
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_DEV_INSTANCE_HOST }}
port: 22
username: ${{ secrets.EC2_DEV_INSTANCE_USERNAME }}
key: ${{ secrets.EC2_DEV_INSTANCE_PRIVATE_KEY }}
script: |
cd /home/ubuntu/moabam/infra
mv docker-compose-dev.yml docker-compose.yml
chmod +x ./scripts/deploy-dev.sh
chmod +x ./scripts/init-letsencrypt.sh
chmod +x ./scripts/init-nginx-converter.sh
chmod +x ./mysql/initdb.d/init.sql
chmod +x ./mysql/initdb.d/item-data.sql

- name: Github Actions IP 보안그룹에서 삭제
if: always()
run: |
aws ec2 revoke-security-group-ingress --group-id ${{ secrets.AWS_DEV_SG_ID }} --protocol tcp --port 22 --cidr ${{ steps.ip.outputs.ipv4 }}/32

deploy:
name: deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
token: ${{ secrets.MOABAM_SUBMODULE_KEY }}

- name: JDK 17 셋업
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'corretto'

- name: Gradle 캐싱
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: Gradle Grant 권한 부여
run: chmod +x gradlew

- name: 테스트용 MySQL 도커 컨테이너 실행
run: |
sudo docker run -d -p 3305:3306 --env MYSQL_DATABASE=moabam --env MYSQL_ROOT_PASSWORD=1234 mysql:8.0.33

- name: Gradle 빌드
uses: gradle/gradle-build-action@bd5760595778326ba7f1441bcf7e88b49de61a25 # v2.6.0
with:
arguments: build

- name: 멀티플랫폼 위한 Docker Buildx 설정
uses: docker/setup-buildx-action@v2

- name: Docker Hub 로그인
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}

- name: Docker Hub 빌드하고 푸시
uses: docker/build-push-action@v4
with:
context: .
file: ./infra/Dockerfile
push: true
tags: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ secrets.DOCKER_HUB_REPOSITORY }}:${{ secrets.DOCKER_HUB_DEV_TAG }}
build-args: |
"SPRING_ACTIVE_PROFILES=dev"
platforms: |
linux/amd64
linux/arm64

- name: Github Actions IP 획득
id: ip
uses: haythem/[email protected]

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

- name: Github Actions IP 보안그룹 추가
run: |
aws ec2 authorize-security-group-ingress --group-id ${{ secrets.AWS_DEV_SG_ID }} --protocol tcp --port 22 --cidr ${{ steps.ip.outputs.ipv4 }}/32

- name: EC2 서버에 배포
uses: appleboy/ssh-action@master
id: deploy-dev
if: contains(github.ref, 'dev')
with:
host: ${{ secrets.EC2_DEV_INSTANCE_HOST }}
port: 22
username: ${{ secrets.EC2_DEV_INSTANCE_USERNAME }}
key: ${{ secrets.EC2_DEV_INSTANCE_PRIVATE_KEY }}
source: "./infra/docker-compose-dev.yml"
script: |
cd /home/ubuntu/moabam/infra
echo ${{ secrets.DOCKER_HUB_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
./scripts/deploy-dev.sh
docker rm `docker ps -a -q`
docker rmi $(docker images -aq)
echo "### 배포 완료 ###"

- name: Github Actions IP 보안그룹에서 삭제
if: always()
run: |
aws ec2 revoke-security-group-ingress --group-id ${{ secrets.AWS_DEV_SG_ID }} --protocol tcp --port 22 --cidr ${{ steps.ip.outputs.ipv4 }}/32
Loading
Loading