Skip to content
Merged

Dev #15

Show file tree
Hide file tree
Changes from all commits
Commits
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
47 changes: 28 additions & 19 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,45 +7,54 @@ on:
jobs:
deploy:
runs-on: ubuntu-latest
env:
KEY_hackerton: ${{ secrets.KEY_HACKERTON_PROD }} # 운영용 secret

steps:
# 1️⃣ 코드 체크아웃
# 1. 코드 체크아웃
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

# 2️⃣ JDK 17 세팅
- name: Set up JDK
uses: actions/setup-java@v3
# 2. JDK 17 세팅
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'

# 3️⃣ 빌드 + jar 이름 고정
- name: Build
run: |
./gradlew clean bootJar -x test
cp build/libs/*SNAPSHOT.jar build/libs/app.jar
# 3. Gradle 실행 권한 부여
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew

# 4️⃣ EC2로 jar 전송
# 4. Gradle 빌드
- name: Build with Gradle
run: ./gradlew clean bootJar -x test

# 5. jar 파일 이름 고정
- name: Rename jar
run: mv build/libs/*.jar build/libs/app.jar

# 6. EC2로 jar 전송
- name: Upload jar to EC2
uses: appleboy/scp-action@v0.1.4
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_KEY }}
source: "build/libs/app.jar"
target: "/home/ubuntu/app/"
target: "/home/ubuntu/app"
strip_components: 2

# 5️⃣ EC2에서 앱 재시작
- name: Run app on EC2
uses: appleboy/ssh-action@v0.1.8
# 7. EC2에서 앱 재시작
- name: Restart app on EC2
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_KEY }}
envs: KEY_HACKERTON
script: |
cd /home/ubuntu/app/
cd /home/ubuntu/app
chmod +x run.sh
export KEY_hackerton="$KEY_HACKERTON"
./run.sh
env:
KEY_HACKERTON: ${{ secrets.KEY_HACKERTON }}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
import com.example.demo.shared.response.ApiResponse;
import com.example.demo.shared.response.ErrorCode;
import com.example.demo.shared.response.SuccessCode;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
Expand All @@ -18,6 +22,22 @@ public class GeminiController {

private final GeminiService geminiService;

@Operation(
summary = "감정 배출 및 키워드 추출",
description = "유저의 감정(content)을 보내면 gemini가 답변과 핵심 키워드를 반환합니다."
)
@io.swagger.v3.oas.annotations.parameters.RequestBody(
description = "상담할 고민 내용",
required = true,
content = @Content(
mediaType = "application/json",
schema = @Schema(example = "{\"content\": \"오늘 해커톤 너무 힘들다.\"}"),
examples = @ExampleObject(
name = "고민 상담 예시",
value = "{\"content\": \"해커톤 프로젝트가 생각보다 어려워서 속상해...\"}"
)
)
)
@PostMapping("/ask")
public ApiResponse<Map<String, Object>> ask(@RequestBody Map<String, String> request) {
String userContent = request.get("content");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
import com.example.demo.domain.ranking.service.RankingService;
import com.example.demo.shared.response.ApiResponse;
import com.example.demo.shared.response.SuccessCode;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
Expand All @@ -18,6 +22,10 @@ public class RankingController {

private final RankingService rankingService;

@Operation(
summary = "TOP3 키워드 반환",
description = "TOP3 키워드를 반환합니다."
)
@GetMapping("/top3")
public ApiResponse<List<Map<String, Object>>> getTop3() {
List<Map<String, Object>> result = rankingService.getTop3WithPercentage();
Expand Down