Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat#109/ 멀티 모듈 구성 #110

Merged
merged 28 commits into from
Aug 22, 2024
Merged
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
3a16300
feat: 멀티 모듈 구성
kkyu0718 Aug 21, 2024
100391e
feat: 공통 build.gradle 파일 분리
kkyu0718 Aug 21, 2024
aae4012
feat: github action 의 jacoco-rule 서브모듈에 대해 적용되도록 수정
kkyu0718 Aug 21, 2024
3a84a68
feat: queue-server application 메인 클래스명 수정
kkyu0718 Aug 21, 2024
72f3686
fix: github action jacoco 테스트 결과 step-id 와 매칭되도록 수정
kkyu0718 Aug 21, 2024
dbe73f8
fix: jacoco-rule build 시 jacocoTest 하지 않도록 수정
kkyu0718 Aug 21, 2024
da29364
fix: root 빌드 파일 bootJar.enabled=false 삭제
kkyu0718 Aug 21, 2024
e8db0d7
feat: queue-server 테스트 코드 추가
kkyu0718 Aug 21, 2024
0fbee00
feat: jacocoTestReport 제대로 생성됐는지 로그 찍는 step 추가
kkyu0718 Aug 21, 2024
06c3beb
fix: jacoco-report 한번에 두개의 report 를 하도록 수정
kkyu0718 Aug 21, 2024
8ebbd1d
fix: jacocoTestReports paths , 로 분리
kkyu0718 Aug 21, 2024
6c98d01
fix: jacocoTest paths 개행 문자 제거
kkyu0718 Aug 21, 2024
63a2d97
fix: jacocoTest paths wildcard 로 수정
kkyu0718 Aug 21, 2024
d3dae0f
feat: jacoco-rule.yml paths 오타 수정
kkyu0718 Aug 21, 2024
f037559
feat: jacocoTest id 수정
kkyu0718 Aug 21, 2024
46e7430
feat: jacoco-rule path 명시
kkyu0718 Aug 21, 2024
deabef2
feat: build.gradle 원복
kkyu0718 Aug 21, 2024
550570b
feat: jacoco-report version 1.6 으로 업데이트
kkyu0718 Aug 21, 2024
de90f46
feat: jacoco-rule paths 공백 삭제
kkyu0718 Aug 21, 2024
b95c3bf
feat: paths 개행 문자 삭제
kkyu0718 Aug 21, 2024
7253977
feat: path 수정
kkyu0718 Aug 21, 2024
4551a97
feat: 실험용 테스트 코드 추가
kkyu0718 Aug 21, 2024
eb3b1ae
feat: jacoco-version
kkyu0718 Aug 21, 2024
fc9a46d
feat: 샘플테스트 제거
kkyu0718 Aug 22, 2024
8d5f0ce
feat: jacoco-report 버젼 1.6 으로 변경
kkyu0718 Aug 22, 2024
904eb02
feat: jacoco-rule 버젼업
kkyu0718 Aug 22, 2024
7845fea
Revert "feat: 샘플테스트 제거"
kkyu0718 Aug 22, 2024
efb25b8
Merge branch 'develop' into feat#109
minnim1010 Aug 22, 2024
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
56 changes: 35 additions & 21 deletions .github/workflows/jacoco-rule.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,43 @@
name: jacoco-rule

on:
pull_request:
branches: [ main, develop ]

permissions:
pull-requests: write
contents: read

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: 'adopt'

- name: Grant execute permission for gradlew
run: cd backend && chmod +x gradlew

- name: Build with Gradle
run: cd backend && ./gradlew build

- name: Verify Jacoco Test Reports
run: |
echo "Checking api-server Jacoco Test Report:"
if [ -f backend/api-server/build/reports/jacoco/test/jacocoTestReport.xml ]; then
echo "api-server Jacoco Test Report exists"
ls -l backend/api-server/build/reports/jacoco/test/
else
echo "api-server Jacoco Test Report does not exist"
exit 1
fi

echo "Checking queue-server Jacoco Test Report:"
if [ -f backend/queue-server/build/reports/jacoco/test/jacocoTestReport.xml ]; then
echo "queue-server Jacoco Test Report exists"
ls -l backend/queue-server/build/reports/jacoco/test/
else
echo "queue-server Jacoco Test Report does not exist"
exit 1
fi
- name: Store error reports
if: ${{ failure() }}
uses: actions/upload-artifact@v4
Expand All @@ -35,32 +46,35 @@ jobs:
path: |
**/build/reports/
**/build/test-results/

- name: Upload Jacoco coverage report
uses: actions/upload-artifact@v2
with:
name: jacoco-report
path: backend/build/reports/jacoco/

path: backend/**/build/reports/jacoco/
- name: Jacoco Report to PR
id: jacoco
uses: madrapps/jacoco-report@v1.3
uses: madrapps/jacoco-report@v1.6.1
with:
paths: ${{ github.workspace }}/backend/build/reports/jacoco/test/jacocoTestReport.xml
paths: |
${{ github.workspace }}/backend/api-server/build/reports/jacoco/test/jacocoTestReport.xml,
${{ github.workspace }}/backend/queue-server/build/reports/jacoco/test/jacocoTestReport.xml
token: ${{ secrets.GITHUB_TOKEN }}
min-coverage-overall: 80
min-coverage-changed-files: 80
title: Code Coverage Report
update-comment: true

- name: Check coverage and fail if below threshold
run: |
overall_coverage=$(echo "${{ steps.jacoco.outputs.coverage-overall }}" | cut -d'.' -f1)
changed_files_coverage=$(echo "${{ steps.jacoco.outputs.coverage-changed-files }}" | cut -d'.' -f1)

if [ $overall_coverage -lt 80 ] || [ $changed_files_coverage -lt 80 ]; then
echo "Coverage is below the required threshold."
echo "Overall coverage: $overall_coverage%"
echo "Changed files coverage: $changed_files_coverage%"
overall=$(echo "${{ steps.jacoco.outputs.coverage-overall }}" | cut -d'.' -f1)
changed=$(echo "${{ steps.jacoco.outputs.coverage-changed-files }}" | cut -d'.' -f1)

if [ -z "$overall" ] || [ -z "$changed" ]; then
echo "Failed to get coverage information"
exit 1
fi

if [ $overall -lt 80 ] || [ $changed -lt 80 ]; then
echo "Coverage is below the required threshold."
echo "Overall coverage: $overall%, Changed files coverage: $changed%"
exit 1
fi
File renamed without changes.
24 changes: 24 additions & 0 deletions backend/api-server/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-mail'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.session:spring-session-core'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310' // Jackson의 Java 8 날짜/시간 모듈

developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.mysql:mysql-connector-j'

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'

// S3
implementation 'io.awspring.cloud:spring-cloud-starter-aws:2.4.4'
implementation 'io.awspring.cloud:spring-cloud-starter-aws-secrets-manager-config:2.4.4'

// cache
implementation 'org.springframework.boot:spring-boot-starter-cache'
implementation 'com.github.ben-manes.caffeine:caffeine'
}
File renamed without changes.
Loading
Loading