Skip to content

Commit

Permalink
Merge pull request #251 from capstone-kw-jjiggle/main
Browse files Browse the repository at this point in the history
[deploy] release 브랜치로 머지 후 바로 머지 진행하겠습니다!
  • Loading branch information
khyojun authored Jan 29, 2025
2 parents ff9d548 + 6a4d538 commit 66e05c4
Show file tree
Hide file tree
Showing 13 changed files with 98 additions and 530 deletions.
68 changes: 68 additions & 0 deletions .github/workflows/rankit-cicd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: develop branch bluegreen deployment

on:
push:
branches:
- release* # Trigger on any branch that starts with "release"

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- uses: actions/checkout@v4

# 1. JDK 17 설정
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

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

# 3. Jar 파일 빌드 (테스트 제외)
- name: Build with Gradle Wrapper
run: ./gradlew -x test bootJar

# 4. Docker Buildx 설정
- name: Set up Docker Build
uses: docker/setup-buildx-action@v1

# 5. Docker 로그인
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}

# 6. Docker 이미지 빌드 및 푸시
- name: Build and push Docker image
run: |
docker build -t ${{ secrets.DOCKER_USERNAME }}/rankitrun-be:latest .
docker push ${{ secrets.DOCKER_USERNAME }}/rankitrun-be:latest
deploy:
runs-on: ubuntu-latest
needs: build # build 작업이 완료되어야 실행
permissions:
contents: read

steps:
# 1. EC2 SSH 접속을 위한 키 등록
- name: Set up SSH key
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.API_RANKIT_PEM }}

# 2. EC2에 blue green 무중단 배포를 위한 스크립트 실행
- name: Run deploy.sh
run: |
ssh -o StrictHostKeyChecking=no ec2-user@${{ secrets.EC2_HOST }} << 'EOF'
chmod +x deploy.sh # 만약 실행 권한이 없다면 추가
./deploy.sh # 스크립트 실행
EOF
231 changes: 0 additions & 231 deletions .github/workflows/rankit-multiaz-cicd.yml

This file was deleted.

31 changes: 25 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@



## 🌐 Service
> **[RankIt](https://rankit.run)** - https://rankit.run


Expand All @@ -24,7 +23,6 @@

</div>

<br>

## 1. 개발 환경

Expand All @@ -34,7 +32,28 @@
- 서비스 배포 환경 : AWS - EC2 , Docker , Github Actions 사용 예정
<br>

## 2. 전략 및 컨벤션
## 2. 서비스 아키텍쳐 (최종 완성형)
![image](https://github.com/user-attachments/assets/1fe4896c-4a5c-4756-9337-6c02970a47e6)



## 2-1. 현재 아키텍쳐 (지속된 비용 문제로 인한 변경)

### 변경 사유
- 현재 유저 규모로 예상했을때 이중화 서버를 구축하기에는 너무 많은 비용이 부과되어 현재 구조로 변경
- 현재 구조의 경우 비용이 나오지 않음!

![img.png](https://github.com/user-attachments/assets/2d6ddd97-04ef-481c-b2e3-c52ef8bfe0b1)



<br>

## 3. ERD

![image](https://github.com/user-attachments/assets/5c8108bb-c155-4127-a7e6-d730e5de3f1e)

## 4. 브랜치 전략 및 컨벤션

### 브랜치 전략

Expand Down Expand Up @@ -64,7 +83,7 @@



## 3. 패키지 구조
## 5. 패키지 구조

### 05.20 기준 도메인형으로 변경!

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class SchoolRankController {

private final SchoolRankService schoolRankService;

@GetMapping("/mySchool") // 삭제????
@GetMapping("/mySchool")
@Operation(summary = "이 API 가 필요할까요? 이건 보류", description = "내 학교 정보 탭 관련 api 요청입니다.")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "내 학교 정보 요청을 성공했습니다."),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public void sendMail(String to) {
helper.setSubject("랭깃 인증 코드 발급 안내");
helper.setText(setContext(code), true);
helper.addInline("rankitLogo",
new ClassPathResource("img/rankit.png")); // 로고 파일 경로 수정 필요
new ClassPathResource("img/rankit.png"));

mailSender.send(message);
univCertRepository.findByEmail(to).ifPresentOrElse(u -> u.updateCode(code,
Expand Down
1 change: 0 additions & 1 deletion src/main/java/gitbal/backend/domain/user/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ public class User extends BaseTimeEntity {
@Column(name = "user_id")
private Long id;

// Todo: 공부한 이후 수정 작업 계속 진행 (JPA 공부)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "school_id")
private School school;
Expand Down
Loading

0 comments on commit 66e05c4

Please sign in to comment.