Skip to content

Commit

Permalink
Merge pull request #105 from echo1241/dev
Browse files Browse the repository at this point in the history
[Release] Echo Service v1.0
  • Loading branch information
HyeonjinChoi authored Aug 21, 2024
2 parents ec141ef + 554595e commit 7cca1a5
Show file tree
Hide file tree
Showing 168 changed files with 8,820 additions and 5 deletions.
18 changes: 18 additions & 0 deletions .github/ISSUE_TEMPLATE/fix-이슈-템플릿.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: Fix 이슈 템플릿
about: 버그 수정에 대한 이슈는 이 템플릿을 사용해주세요.
title: "[Fix] ???"
labels: ''
assignees: ''

---

### 설명
-

<br>

### 할 일
- [ ]
- [ ]
- [ ]
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
### PR 타입(하나 이상의 PR 타입을 선택해주세요)
-[] 기능 추가
-[] 기능 삭제
-[] 버그 수정
-[] 의존성, 환경 변수, 빌드 관련 코드 업데이트

### 반영 브랜치
ex) feat/login -> dev

### 변경 사항
ex) 로그인 시, 구글 소셜 로그인 기능을 추가했습니다.

### 테스트 결과
ex) 베이스 브랜치에 포함되기 위한 코드는 모두 정상적으로 동작해야 합니다. 결과물에 대한 스크린샷, GIF, 혹은 라이브 데모가 가능하도록 샘플API를 첨부할 수도 있습니다.
18 changes: 18 additions & 0 deletions .github/ISSUE_TEMPLATE/기술-개발-이슈-템플릿.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: 기술 개발 이슈 템플릿
about: 기술 개발에 대한 이슈는 이 템플릿을 사용해주세요.
title: "[Feat] ???"
labels: ''
assignees: ''

---

### 설명
-

<br>

### 할 일
- [ ]
- [ ]
- [ ]
14 changes: 14 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
### PR 타입(하나 이상의 PR 타입을 선택해주세요)
-[] 기능 추가
-[] 기능 삭제
-[] 버그 수정
-[] 의존성, 환경 변수, 빌드 관련 코드 업데이트

### 반영 브랜치
ex) feat/login -> dev

### 변경 사항
ex) 로그인 시, 구글 소셜 로그인 기능을 추가했습니다.

### 테스트 결과
ex) 베이스 브랜치에 포함되기 위한 코드는 모두 정상적으로 동작해야 합니다. 결과물에 대한 스크린샷, GIF, 혹은 라이브 데모가 가능하도록 샘플API를 첨부할 수도 있습니다.
86 changes: 86 additions & 0 deletions .github/workflows/CiCd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Java CI/CD with Gradle

on:
push:
branches: [ "dev" ]

# 환경 변수 설정
env:
ECR_REPOSITORY_NAME: my-java-app-repo # Docker 이미지를 저장할 ECR 리포지토리 이름
ECS_CLUSTER_NAME: MyEchoCluster # ECS 클러스터 이름
ECS_SERVICE_NAME: EchoService # ECS 서비스 이름
AWS_REGION: ap-northeast-2 # AWS 리전

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code # 코드 체크아웃
uses: actions/checkout@v4 # GitHub의 checkout 액션 사용

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

- name: Grant execute permission for gradlew # gradlew에 실행 권한 부여
run: chmod +x gradlew # gradlew 파일에 실행 권한 부여

- name: Build and Test with Gradle # Gradle로 빌드 및 테스트
run: ./gradlew clean build -x test # 테스트 제외하고 빌드 실행

- name: Archive build artifacts
uses: actions/upload-artifact@v2 # GitHub의 artifact 업로드 액션 사용
with:
name: built-artifact # 아티팩트 이름 설정
path: build/libs/echo-0.0.1-SNAPSHOT.jar # 저장할 파일 경로

deploy:
needs: build # 빌드 작업이 완료된 후에 실행
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Download build artifact
uses: actions/download-artifact@v3
with:
name: built-artifact
path: . # 현재 디렉토리에 저장

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

- name: Log in to Amazon ECR # Amazon ECR에 로그인
run: aws ecr get-login-password --region ${{ env.AWS_REGION }} | docker login --username AWS --password-stdin ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_KEY }}

- name: Create build/libs directory # Docker 컨텍스트를 위한 디렉토리 생성
run: mkdir -p build/libs

- name: Copy artifact to Docker context # 아티팩트를 Docker 컨텍스트로 복사
run: cp echo-0.0.1-SNAPSHOT.jar build/libs/echo-0.0.1-SNAPSHOT.jar # JAR 파일 복사

- name: Build Docker image # Docker 이미지 빌드
run: docker build -t ${{ env.ECR_REPOSITORY_NAME }} -f Dockerfile . # Docker 이미지를 Dockerfile로 빌드

- name: Tag Docker image # Docker 이미지 태깅
run: docker tag ${{ env.ECR_REPOSITORY_NAME }}:latest ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/${{ env.ECR_REPOSITORY_NAME }}:latest # 이미지에 태그 추가

- name: Push Docker image to ECR # Docker 이미지를 ECR로 푸시
run: docker push ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/${{ env.ECR_REPOSITORY_NAME }}:latest # Docker 이미지 푸시

- name: Deploy Service to ECS # ECS에 서비스 배포
run: |
aws ecs update-service --cluster ${{ env.ECS_CLUSTER_NAME }} --service ${{ env.ECS_SERVICE_NAME }} --force-new-deployment # 서비스 업데이트 및 배포
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_KEY }}
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,5 @@ out/

### VS Code ###
.vscode/
.env
.env
docker-compose-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:21-jdk-slim
ENV TZ=Asia/Seoul
RUN apt-get install -y tzdata
WORKDIR /app
COPY build/libs/echo-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
Loading

0 comments on commit 7cca1a5

Please sign in to comment.