-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #105 from echo1241/dev
[Release] Echo Service v1.0
- Loading branch information
Showing
168 changed files
with
8,820 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
--- | ||
name: Fix 이슈 템플릿 | ||
about: 버그 수정에 대한 이슈는 이 템플릿을 사용해주세요. | ||
title: "[Fix] ???" | ||
labels: '' | ||
assignees: '' | ||
|
||
--- | ||
|
||
### 설명 | ||
- | ||
|
||
<br> | ||
|
||
### 할 일 | ||
- [ ] | ||
- [ ] | ||
- [ ] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
### PR 타입(하나 이상의 PR 타입을 선택해주세요) | ||
-[] 기능 추가 | ||
-[] 기능 삭제 | ||
-[] 버그 수정 | ||
-[] 의존성, 환경 변수, 빌드 관련 코드 업데이트 | ||
|
||
### 반영 브랜치 | ||
ex) feat/login -> dev | ||
|
||
### 변경 사항 | ||
ex) 로그인 시, 구글 소셜 로그인 기능을 추가했습니다. | ||
|
||
### 테스트 결과 | ||
ex) 베이스 브랜치에 포함되기 위한 코드는 모두 정상적으로 동작해야 합니다. 결과물에 대한 스크린샷, GIF, 혹은 라이브 데모가 가능하도록 샘플API를 첨부할 수도 있습니다. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
--- | ||
name: 기술 개발 이슈 템플릿 | ||
about: 기술 개발에 대한 이슈는 이 템플릿을 사용해주세요. | ||
title: "[Feat] ???" | ||
labels: '' | ||
assignees: '' | ||
|
||
--- | ||
|
||
### 설명 | ||
- | ||
|
||
<br> | ||
|
||
### 할 일 | ||
- [ ] | ||
- [ ] | ||
- [ ] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
### PR 타입(하나 이상의 PR 타입을 선택해주세요) | ||
-[] 기능 추가 | ||
-[] 기능 삭제 | ||
-[] 버그 수정 | ||
-[] 의존성, 환경 변수, 빌드 관련 코드 업데이트 | ||
|
||
### 반영 브랜치 | ||
ex) feat/login -> dev | ||
|
||
### 변경 사항 | ||
ex) 로그인 시, 구글 소셜 로그인 기능을 추가했습니다. | ||
|
||
### 테스트 결과 | ||
ex) 베이스 브랜치에 포함되기 위한 코드는 모두 정상적으로 동작해야 합니다. 결과물에 대한 스크린샷, GIF, 혹은 라이브 데모가 가능하도록 샘플API를 첨부할 수도 있습니다. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -35,4 +35,5 @@ out/ | |
|
||
### VS Code ### | ||
.vscode/ | ||
.env | ||
.env | ||
docker-compose-prod.yml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"] |
Oops, something went wrong.