Skip to content

[REFACTOR]: 부정프롬프트 추가 및 정확도 향상 #115

[REFACTOR]: 부정프롬프트 추가 및 정확도 향상

[REFACTOR]: 부정프롬프트 추가 및 정확도 향상 #115

Workflow file for this run

# 마지막 수정: 250924
# Backend CI Workflow 입니다.
name: Backend PR CI
env:
BACKEND_DIR: back
on:
pull_request:
branches:
# 개발 초기 - main으로의 PR 시 검사
# 향후 dev로의 PR / dev -> main PR 시에도 검사
- main
- dev
types: [
# PR 생성 및 다시 오픈 시
opened, reopened,
# 최초 PR 제출 이후 작업 브랜치 push 발생 시
synchronize
]
# 대상 경로의 수정 사항이 있을 때 동작
paths:
[
".github/workflows/**",
"back/build.gradle.kts",
"back/settings.gradle.kts",
"back/src/**",
"back/Dockerfile",
]
# 동일 브랜치에서 연속 실행 방지
concurrency:
group: relife-backend-ci-${{ github.ref }}-${{ github.event.pull_request.number }}
cancel-in-progress: true
permissions:
contents: read
# mikepenz/action-junit-report 구동을 위한 최소 조건
checks: write
jobs:
backend-ci:
# 상단의 types 주석을 참고
name: Backend CI
runs-on: ubuntu-latest
# 작업 디렉토리
defaults:
run:
working-directory: ./${{ env.BACKEND_DIR }}
steps:
# 소스 코드 가져오기
- name: Checkout repository
uses: actions/checkout@v4
# JDK 설정
# Graalvm 21 사용 (Docker 및 개발 환경 일치)
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
distribution: "graalvm"
java-version: "21"
# Gradle 캐시 설정
- name: Cache Gradle dependencies
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-
- name: Pre-pull pgvector image
run: docker pull pgvector/pgvector:pg16
- name: Grant Docker perms
run: docker info
# Gradle 실행 권한 부여
- name: Grant execute permission for gradlew
run: chmod +x gradlew
# Secret으로 부터 .env 생성
- name: Generate .env from Secret
run: |
printf "%s" "${{ secrets.DOT_ENV }}" > .env
# Gradle 빌드 및 테스트
# 빌드 / 테스트 분리
- name: Execute Build
run: ./gradlew clean build -x test --warning-mode=all --no-daemon
- name: Execute Tests
run: ./gradlew test --info --no-daemon
# 테스트 실행 결과 로깅 Action
- name: Generate JUnit Test Report
uses: mikepenz/action-junit-report@v5
if: always()
with:
report_paths: "**/build/test-results/test/TEST-*.xml"
# 빌드 및 테스트가 완료된 JAR 파일을 별도 디렉토리에 복사
- name: Copy JAR file to dist directory
run: |
mkdir -p dist
cp $(ls build/libs/*.jar | grep -v plain | head -n 1) dist/app.jar
# JAR 파일을 아티팩트로 업로드 (CD 파이프라인에서 사용)
- name: Upload artifact
uses: actions/upload-artifact@v4
if: success()
with:
name: relife-backend-jar
path: back/dist/app.jar