[REFACTOR]: 부정프롬프트 추가 및 정확도 향상 #115
Workflow file for this run
This file contains hidden or 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
| # 마지막 수정: 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 |