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

conf: 운영 서버 배포를 위한 머지 작업 #45

Merged
merged 124 commits into from
Aug 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
949c575
conf: 데이터베이스 관련 의존성 추가 및 BaseEntity 추가
kjungw1025 Jul 22, 2024
7b9cd7b
conf: swagger 설정 추가
kjungw1025 Jul 22, 2024
0817476
Create ci.yml
kjungw1025 Jul 22, 2024
b6822f0
Create dev_cd.yml
kjungw1025 Jul 22, 2024
ebf55eb
Merge pull request #2 from SWM-WeLike2Coding/feat/CD
kjungw1025 Jul 22, 2024
39e1f1a
remove: 테스트 코드 파일 삭제
kjungw1025 Jul 22, 2024
e43177a
Create Dockerfile
kjungw1025 Jul 22, 2024
c91cd7a
chore: 패키지 구조 변경
kjungw1025 Jul 23, 2024
1992288
feat: User 엔티티 추가
kjungw1025 Jul 23, 2024
72bf620
Merge pull request #7 from SWM-WeLike2Coding/feat/userEntity
kjungw1025 Jul 23, 2024
79f5572
fix: Update ci.yml
kjungw1025 Jul 24, 2024
3c7852a
conf: redis 의존성 추가
kjungw1025 Jul 24, 2024
e5ebb8c
conf: redis 환경설정
kjungw1025 Jul 24, 2024
bb66f0c
feat: 오류 처리 메시지들 생성
kjungw1025 Jul 24, 2024
aaefb2c
conf: jwt 의존성 추가
kjungw1025 Jul 24, 2024
8fac7d9
feat: jwt 기반 토큰 생성 및 검증 기능 추가
kjungw1025 Jul 24, 2024
f78dca4
feat: 오류 처리에 대한 메시지들 생성
kjungw1025 Jul 25, 2024
a070849
conf: WebMvcConfigurer 설정 추가
kjungw1025 Jul 25, 2024
fcbdaa5
feat: Swagger에 JWT 토큰 인증을 할 수 있는 편의 기능 추가
kjungw1025 Jul 25, 2024
fc641e4
fix: User 엔티티 수정
kjungw1025 Jul 25, 2024
5257798
feat: User 리포지토리에 메소드 추가
kjungw1025 Jul 25, 2024
d8864b0
feat: 회원가입 시, 초기 랜덤 닉네임 생성을 위한 서비스 로직 추가
kjungw1025 Jul 25, 2024
5f52fd4
feat: 유저 정보를 레디스에 보관하고 가져올 수 있는 기능 개발
kjungw1025 Jul 25, 2024
f427517
feat: 유저 정보를 조회할 수 있는 서비스 로직 추가
kjungw1025 Jul 25, 2024
1e8073b
feat: 내 정보 조회 컨트롤러 생성
kjungw1025 Jul 25, 2024
37ccc69
feat: google oauth2를 통한 회원가입, 로그인 기능 개발
kjungw1025 Jul 25, 2024
375b494
Merge pull request #8 from SWM-WeLike2Coding/feat/oauth
kjungw1025 Jul 25, 2024
f8b9be5
feat: Create pull_request_template.md
kjungw1025 Jul 25, 2024
4c9137a
feat: 동일한 닉네임에 대한 에러 처리 추가
kjungw1025 Jul 25, 2024
6b1afa9
feat: 유저 엔티티에 닉네임 변경 비즈니스 로직 추가
kjungw1025 Jul 25, 2024
ed8cac4
feat: 닉네임 변경 후, 레디스에 있던 기존 유저 정보 삭제 로직 추가
kjungw1025 Jul 25, 2024
7e37a9e
feat: 유저 서비스에 닉네임 변경 기능 추가
kjungw1025 Jul 25, 2024
0825d2f
feat: 닉네임 변경에 대한 컨트롤러 로직 추가
kjungw1025 Jul 25, 2024
c27b19a
test: 테스트 코드 적용을 위한 util 객체들 생성
kjungw1025 Jul 25, 2024
b997389
test: UserMock 객체 생성
kjungw1025 Jul 25, 2024
d2af6cb
test: 닉네임 변경에 대한 테스트 코드 작성
kjungw1025 Jul 25, 2024
bf26cf9
Merge pull request #10 from SWM-WeLike2Coding/feat/changeNickname
kjungw1025 Jul 25, 2024
4e2dd7e
feat: 토큰 재발급 기능 추가
kjungw1025 Jul 26, 2024
cc2c7c3
test: 토큰 재발급 기능에 대한 테스트 코드 작성
kjungw1025 Jul 26, 2024
d1495ed
Merge pull request #11 from SWM-WeLike2Coding/feat/reissueToken
kjungw1025 Jul 26, 2024
a24e35a
test: 내 정보 조회에 대한 테스트 코드 작성
kjungw1025 Jul 26, 2024
db4fc08
test: 찾을 수 없는 아이디에 대한 내 정보 가져오기 실패 테스트 코드 작성
kjungw1025 Jul 26, 2024
f6b181e
Merge pull request #12 from SWM-WeLike2Coding/test/userInfo
kjungw1025 Jul 26, 2024
128c696
feat: 사용자의 보유 상품에 대한 엔티티 생성 및 연관관계 설정
kjungw1025 Jul 26, 2024
504263d
feat: 사용자의 보유 상품에 대한 리포지토리 인터페이스 생성
kjungw1025 Jul 26, 2024
e16ef33
feat: 사용자의 보유 상품 등록에 대한 서비스 및 컨트롤러 추가
kjungw1025 Jul 26, 2024
e9a32e5
fix: 사용자의 보유 상품 등록 기능 리턴 타입 수정
kjungw1025 Jul 26, 2024
c885e1c
feat: 사용자의 보유 상품 금액 수정에 대한 리포지토리 인터페이스 추가
kjungw1025 Jul 26, 2024
edcc0d2
feat: 사용자의 보유 상품 금액 수정에 대한 서비스 및 컨트롤러 추가
kjungw1025 Jul 26, 2024
c02fbbd
feat: 특정 보유 상품이 존재하지 않을때 발생하는 에러 처리 메시지 생성
kjungw1025 Jul 26, 2024
7c8b9ab
feat: 특정 보유 상품 삭제에 대한 메서드 추가
kjungw1025 Jul 26, 2024
097a167
feat: 특정 보유 상품 삭제에 대한 서비스 및 컨트롤러에 메서드 추가
kjungw1025 Jul 26, 2024
56ba518
Merge pull request #13 from SWM-WeLike2Coding/feat/holding
kjungw1025 Jul 27, 2024
46b3793
fix: 보유 상품의 수정 삭제 기능에 대한 요청 양식 수정
kjungw1025 Jul 27, 2024
6a31b0b
Merge pull request #14 from SWM-WeLike2Coding/fix/holding
kjungw1025 Jul 27, 2024
4644898
fix: 인증 완료 후 flutter 애플리케이션으로 리다이렉션 할수있도록 코드 수정
kjungw1025 Jul 27, 2024
28540b0
Merge pull request #15 from SWM-WeLike2Coding/fix/oauthGoogle
kjungw1025 Jul 27, 2024
1dc403e
fix: 리다이렉트 주소지 변경
kjungw1025 Jul 28, 2024
d9da528
Merge pull request #16 from SWM-WeLike2Coding/fix/oauth
kjungw1025 Jul 28, 2024
148066a
conf: 마이크로서비스간의 통신을 위해 사용할 feignClient 의존성 추가
kjungw1025 Jul 28, 2024
7bf8d04
feat: 상품 서비스에 대한 Feign Client 추가
kjungw1025 Jul 28, 2024
71d1989
feat: 존재하지 않는 상품인 경우에 대한 예외 처리 메시지 생성
kjungw1025 Jul 28, 2024
f3f2078
fix: 보유 상품으로 등록시, 해당 상품이 존재하는지 확인하는 로직 추가
kjungw1025 Jul 28, 2024
ef20502
Merge pull request #19 from SWM-WeLike2Coding/feat/holding
kjungw1025 Jul 28, 2024
5ab434d
feat: 관심 상품 엔티티 생성 및 연관관계 설정
kjungw1025 Aug 1, 2024
c139c5d
feat: product-service에 api 호출을 위한 FeignClient 사용
kjungw1025 Aug 1, 2024
40dbcf2
conf: circuit breaker 사용을 위한 resilience4j 의존성 추가
kjungw1025 Aug 1, 2024
7dc3581
feat: 관심 상품 조회, 삭제 등을 위한 리포지토리 메소드 작성
kjungw1025 Aug 1, 2024
129c911
feat: 관심 상품 관련 에러 처리 메시지 생성
kjungw1025 Aug 1, 2024
802f69f
feat: 관심 상품 등록, 조회, 삭제 서비스 로직 생성
kjungw1025 Aug 1, 2024
f4edac1
feat: 관심 상품 컨트롤러 생성
kjungw1025 Aug 1, 2024
86abea7
Merge pull request #21 from SWM-WeLike2Coding/feat/userInterest
kjungw1025 Aug 1, 2024
a9225c7
feat: 이미 등록한 보유 상품인지 검증하기 위한 리포지토리 메소드 추가
kjungw1025 Aug 1, 2024
c00c637
Merge pull request #22 from SWM-WeLike2Coding/feat/userHolding
kjungw1025 Aug 1, 2024
4a6c805
fix: 보유 상품 등록 서비스 수정 및 circuit breaker 적용
kjungw1025 Aug 1, 2024
95b65be
Merge pull request #23 from SWM-WeLike2Coding/fix/holdingService
kjungw1025 Aug 1, 2024
04e3820
Merge pull request #24 from SWM-WeLike2Coding/dev
kjungw1025 Aug 1, 2024
1a7f968
feat: 탈퇴 처리된 회원에 대한 상태 변경을 위한 비즈니스 로직 추가
kjungw1025 Aug 2, 2024
3b70076
fix: 유저 엔티티와 연관관계를 맺고 있는 엔티티에 대해 cascade 적용
kjungw1025 Aug 2, 2024
58f0687
feat: 회원 탈퇴에 대해서 soft delete 처리를 위한 서비스 및 컨트롤러 생성
kjungw1025 Aug 2, 2024
0192c69
feat: 회원 삭제를 위한 스케줄러 생성
kjungw1025 Aug 2, 2024
0840a56
test: 회원 탈퇴 시, 상태 처리 확인 위한 테스트 코드 작성
kjungw1025 Aug 2, 2024
376baf8
Merge pull request #30 from SWM-WeLike2Coding/test/userWithdraw
kjungw1025 Aug 2, 2024
d779f17
feat: 내 정보에 created_at 추가
kjungw1025 Aug 2, 2024
09851f4
Merge pull request #32 from SWM-WeLike2Coding/feat/userInfo
kjungw1025 Aug 2, 2024
ad57408
chore: 폴더 구조 및 클래스 명 수정
kjungw1025 Aug 4, 2024
4cb2393
conf: 스프링부트 3버전대에 맞는 분산 추적에 사용될 zipkin 관련 의존성 생성
kjungw1025 Aug 4, 2024
81990d0
feat: 타 마이크로서비스와 통신하는 서비스 메소드 부분에 traceId와 spanId 확인을 위한 로그 생성
kjungw1025 Aug 4, 2024
7267140
Merge pull request #34 from SWM-WeLike2Coding/feat/distributedTracing
kjungw1025 Aug 4, 2024
980ab51
feat: api 요청 처리 성공에 대한 메시지 처리를 위한 인터셉터 추가
kjungw1025 Aug 5, 2024
2b5ff97
feat: 설문조사를 참여하지 않은 경우에 대한 에러 처리 메시지 생성
kjungw1025 Aug 5, 2024
8711a70
feat: 투자 성향 설문 조사를 위한 엔티티 생성 및 유저 엔티티와 연관 관계 설정
kjungw1025 Aug 5, 2024
d7f596e
feat: 투자 성향 설문조사를 위한 리포지토리 생성
kjungw1025 Aug 5, 2024
8d83e0a
feat: 서비스 로직에 투자 성향 설문조사 작성에 대한 메소드 생성
kjungw1025 Aug 5, 2024
f16db88
feat: 투자 성향 조회 및 설문조사 참여 여부 확인에 대한 메소드 추가
kjungw1025 Aug 5, 2024
fcf0698
feat: 투자 성향 설문조사에 대한 컨트롤러 생성
kjungw1025 Aug 5, 2024
868362f
feat: 투자 성향 설문조사에 대한 request, response dto 생성
kjungw1025 Aug 5, 2024
395852f
fix: 패키지 구조 변경에 따른 경로 수정
kjungw1025 Aug 5, 2024
ab0399b
Merge pull request #35 from SWM-WeLike2Coding/feat/investmentPropensity
kjungw1025 Aug 5, 2024
fad8d5a
feat: 글로벌 예외 처리 메시지 생성 및 패키지 구조 변경
kjungw1025 Aug 5, 2024
459c076
chore: 패키지 구조 변경에 따른 경로 수정
kjungw1025 Aug 5, 2024
3629901
feat: 컨트롤러 레벨에서 발생하는 예외처리를 위한 controller advisor 생성
kjungw1025 Aug 5, 2024
6f44b2c
Merge pull request #36 from SWM-WeLike2Coding/feat/controllerAdvisor
kjungw1025 Aug 5, 2024
6423dc4
chore: 패키지 구조 수정에 따른 경로 수정
kjungw1025 Aug 5, 2024
5b23406
fix: 에러 처리 대신 빈 list 반환으로 수정
kjungw1025 Aug 5, 2024
f4fcc16
Merge pull request #37 from SWM-WeLike2Coding/fix/interest
kjungw1025 Aug 5, 2024
544d29c
fix: 상품 컨트롤러 경로 수정으로 인한 feign client 요청 경로 수정
kjungw1025 Aug 6, 2024
bb23568
Merge pull request #38 from SWM-WeLike2Coding/fix/feignClient
kjungw1025 Aug 6, 2024
4a5bfad
feat: 레디스 키값 추가
kjungw1025 Aug 7, 2024
fd81d29
feat: 특정 엑세스토큰의 만료일을 확인하는 메소드 추가
kjungw1025 Aug 7, 2024
bb0d8fe
feat: redisTemplate을 통해 accesstoken을 남은 만료일까지 저장하는 리포지토리 생성
kjungw1025 Aug 7, 2024
fb87888
feat: 로그아웃 서비스 및 컨트롤러 생성
kjungw1025 Aug 7, 2024
02fb004
Merge pull request #39 from SWM-WeLike2Coding/feat/logout
kjungw1025 Aug 7, 2024
ebc8a8a
feat: 닉네임 중복 확인 기능 추가
kjungw1025 Aug 8, 2024
ca34033
Merge pull request #40 from SWM-WeLike2Coding/feat/checkNickname
kjungw1025 Aug 8, 2024
0e9e5f2
conf: 환경별 설정 파일에 대한 gitignore 추가
kjungw1025 Aug 11, 2024
cff5fea
fix: ci.yml 수정
kjungw1025 Aug 11, 2024
59e1877
fix: dev_cd.yml 수정
kjungw1025 Aug 11, 2024
81e2765
feat: 단일 레디스 인스턴스에 대해서 profile 어노테이션을 통한 환경별 설정 적용 추가
kjungw1025 Aug 11, 2024
7ca2a87
feat: 레디스 클러스터 모드에 대한 환경 설정 코드 추가
kjungw1025 Aug 11, 2024
e090872
Merge pull request #43 from SWM-WeLike2Coding/feat/redisCluster
kjungw1025 Aug 11, 2024
fbac7a4
fix: dev_cd.yml secret value들 이름 수정
kjungw1025 Aug 11, 2024
f20c159
feat: 운영 서버 구축을 위한 github actions 기반 prod_cd.yml 생성
kjungw1025 Aug 11, 2024
5be894a
Merge pull request #44 from SWM-WeLike2Coding/feat/prodCD
kjungw1025 Aug 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## Issue 번호
ex) #1


## PR 타입 (하나 이상의 PR 타입을 선택해주세요)
- [ ] 기능 추가
- [ ] 기능 삭제
- [ ] 리펙토링
- [ ] 버그 수정
- [ ] 테스트 코드 작성
- [ ] 코드 스타일 업데이트
- [ ] 의존성, 환경 변수, 빌드 관련 코드 업데이트


## 작업 사항
ex) 회원가입 기능 추가
45 changes: 45 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle

name: CI

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

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

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

- name: Make test properties
env:
PROPERTIES: ${{ secrets.PROPERTIES }}
PROPERTIES_TEST: ${{ secrets.PROPERTIES_TEST }}
run: |
mkdir -p ./src/test/resources && cd "$_"
touch ./application.yml
touch ./application-test.yml
echo $PROPERTIES | base64 --decode > application.yml
echo $PROPERTIES_TEST | base64 --decode > application-test.yml
shell: bash

- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

- name: Build with Gradle Wrapper
run: ./gradlew build
114 changes: 114 additions & 0 deletions .github/workflows/dev_cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle

name: Dev_CD

on:
push:
branches: [ "dev_deploy" ]

permissions:
contents: read

jobs:
check_repo:
runs-on: ubuntu-latest
outputs:
cd-skip: ${{ steps.check_repo.outputs.cd-skip-value }}
steps:
- uses: actions/checkout@v4
- name: Check Repo
run: |
if [ "$GITHUB_REPOSITORY" != "YOUR_USER/YOUR_REPO_NAME" ]; then
echo 'cd-skip-value=true' >> $GITHUB_OUTPUT
else
echo 'cd-skip-value=false' >> $GITHUB_OUTPUT
fi

skip_cd:
needs: check_repo
if: github.repository != 'SWM-WeLike2Coding/ELSwhere-user-service'
runs-on: ubuntu-latest
steps:
- name: Skip CD
run: |
echo "CD will be terminated soon..."
exit 0

build:
runs-on: ubuntu-latest
if: github.repository == 'SWM-WeLike2Coding/ELSwhere-user-service'
needs: check_repo
environment: dev
steps:
- uses: actions/checkout@v4

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

- name: Make test properties
env:
PROPERTIES: ${{ secrets.PROPERTIES }}
PROPERTIES_TEST: ${{ secrets.PROPERTIES_TEST }}
run: |
mkdir -p ./src/test/resources && cd "$_"
touch ./application.yml
touch ./application-test.yml
echo $PROPERTIES | base64 --decode > application.yml
echo $PROPERTIES_TEST | base64 --decode > application-test.yml
shell: bash

- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

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

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

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

- name: Docker build
env:
AWS_ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
AWS_ECR_REPOSITORY: ${{ secrets.AWS_ECR_DEV_USER_SERVICE_REPOSITORY }}
run: |
docker build -t $AWS_ECR_REGISTRY/$AWS_ECR_REPOSITORY:${GITHUB_SHA::7} -t $AWS_ECR_REGISTRY/$AWS_ECR_REPOSITORY:latest .

- name: Docker push
env:
AWS_ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
AWS_ECR_REPOSITORY: ${{ secrets.AWS_ECR_DEV_USER_SERVICE_REPOSITORY }}
run: |
docker push $AWS_ECR_REGISTRY/$AWS_ECR_REPOSITORY:${GITHUB_SHA::7}
docker push $AWS_ECR_REGISTRY/$AWS_ECR_REPOSITORY:latest

- name: SSH Remote Commands
uses: appleboy/ssh-action@master
env:
AWS_ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
AWS_ECR_REPOSITORY: ${{ secrets.AWS_ECR_DEV_USER_SERVICE_REPOSITORY }}
with:
host: ${{ secrets.SERVER_HOST_DEV }}
username: ubuntu
key: ${{ secrets.PRIVATE_SUB_PRIVATE_PEM_KEY_DEV }}
proxy_host: ${{ secrets.BASTION_SERVER_HOST_DEV }}
proxy_username: ubuntu
proxy_key: ${{ secrets.PUBLIC_SUB_PRIVATE_PEM_KEY_DEV }}
envs: GITHUB_SHA,AWS_ECR_REGISTRY,AWS_ECR_REPOSITORY
script: |
./deploy_user.sh $AWS_ECR_REGISTRY $AWS_ECR_REPOSITORY ${GITHUB_SHA::7}
114 changes: 114 additions & 0 deletions .github/workflows/prod_cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle

name: Prod_CD

on:
push:
branches: [ "main" ]

permissions:
contents: read

jobs:
check_repo:
runs-on: ubuntu-latest
outputs:
cd-skip: ${{ steps.check_repo.outputs.cd-skip-value }}
steps:
- uses: actions/checkout@v4
- name: Check Repo
run: |
if [ "$GITHUB_REPOSITORY" != "YOUR_USER/YOUR_REPO_NAME" ]; then
echo 'cd-skip-value=true' >> $GITHUB_OUTPUT
else
echo 'cd-skip-value=false' >> $GITHUB_OUTPUT
fi

skip_cd:
needs: check_repo
if: github.repository != 'SWM-WeLike2Coding/ELSwhere-user-service'
runs-on: ubuntu-latest
steps:
- name: Skip CD
run: |
echo "CD will be terminated soon..."
exit 0

build:
runs-on: ubuntu-latest
if: github.repository == 'SWM-WeLike2Coding/ELSwhere-user-service'
needs: check_repo
environment: prod
steps:
- uses: actions/checkout@v4

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

- name: Make test properties
env:
PROPERTIES: ${{ secrets.PROPERTIES }}
PROPERTIES_TEST: ${{ secrets.PROPERTIES_TEST }}
run: |
mkdir -p ./src/test/resources && cd "$_"
touch ./application.yml
touch ./application-test.yml
echo $PROPERTIES | base64 --decode > application.yml
echo $PROPERTIES_TEST | base64 --decode > application-test.yml
shell: bash

- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

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

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

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

- name: Docker build
env:
AWS_ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
AWS_ECR_REPOSITORY: ${{ secrets.AWS_ECR_PROD_USER_SERVICE_REPOSITORY }}
run: |
docker build -t $AWS_ECR_REGISTRY/$AWS_ECR_REPOSITORY:${GITHUB_SHA::7} -t $AWS_ECR_REGISTRY/$AWS_ECR_REPOSITORY:latest .

- name: Docker push
env:
AWS_ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
AWS_ECR_REPOSITORY: ${{ secrets.AWS_ECR_PROD_USER_SERVICE_REPOSITORY }}
run: |
docker push $AWS_ECR_REGISTRY/$AWS_ECR_REPOSITORY:${GITHUB_SHA::7}
docker push $AWS_ECR_REGISTRY/$AWS_ECR_REPOSITORY:latest

- name: SSH Remote Commands
uses: appleboy/ssh-action@master
env:
AWS_ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
AWS_ECR_REPOSITORY: ${{ secrets.AWS_ECR_PROD_USER_SERVICE_REPOSITORY }}
with:
host: ${{ secrets.SERVER_HOST_PROD }}
username: ubuntu
key: ${{ secrets.PRIVATE_SUB_PRIVATE_PEM_KEY_PROD }}
proxy_host: ${{ secrets.BASTION_SERVER_HOST_PROD }}
proxy_username: ubuntu
proxy_key: ${{ secrets.PUBLIC_SUB_PRIVATE_PEM_KEY_PROD }}
envs: GITHUB_SHA,AWS_ECR_REGISTRY,AWS_ECR_REPOSITORY
script: |
./deploy_user.sh $AWS_ECR_REGISTRY $AWS_ECR_REPOSITORY ${GITHUB_SHA::7}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,6 @@ out/

### application.yml ###
application.yml
application-local.yml
application-dev.yml
application-prod.yml
7 changes: 7 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM openjdk:17-slim

WORKDIR /usr/app/

COPY build/libs/*.jar application.jar

ENTRYPOINT ["java", "-jar", "application.jar"]
25 changes: 25 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -31,20 +31,45 @@ dependencies {
// spring boot
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'

// mysql
runtimeOnly 'com.mysql:mysql-connector-j'

// h2
testRuntimeOnly 'com.h2database:h2'

// devtools
developmentOnly 'org.springframework.boot:spring-boot-devtools'

// spring cloud
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
implementation 'org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j'

// Zipkin + Micrometer Tracing
implementation 'io.micrometer:micrometer-tracing-bridge-brave'
implementation 'io.zipkin.reporter2:zipkin-reporter-brave'
implementation 'io.github.openfeign:feign-micrometer'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-registry-prometheus'

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

// redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'

// jwt
implementation 'io.jsonwebtoken:jjwt:0.9.1'
implementation 'javax.xml.bind:jaxb-api:2.3.1'

// swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'
annotationProcessor 'com.github.therapi:therapi-runtime-javadoc-scribe:0.15.0'
implementation 'com.github.therapi:therapi-runtime-javadoc:0.15.0'

// test
testImplementation 'org.springframework.boot:spring-boot-starter-test'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ElSwhereUserServiceApplication {

public static void main(String[] args) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.wl2c.elswhereuserservice.client.product;

public enum ProductType {

/**
* 스텝 다운
*/
STEP_DOWN,

/**
* 리자드 스텝 다운
*/
LIZARD,

/**
* 월지급식
*/
MONTHLY_PAYMENT,

/**
* 기타
*/
ETC
}
Loading
Loading