Skip to content

chore: 게시글 조회수 동시성 테스트 반복 실행 워크플로우 추가#811

Merged
whqtker merged 1 commit into
developfrom
chore/post-view-count-concurrency-test-workflow
Jul 9, 2026
Merged

chore: 게시글 조회수 동시성 테스트 반복 실행 워크플로우 추가#811
whqtker merged 1 commit into
developfrom
chore/post-view-count-concurrency-test-workflow

Conversation

@whqtker

@whqtker whqtker commented Jul 9, 2026

Copy link
Copy Markdown
Member

관련 이슈

  • resolves:

작업 내용

테스트용, 추후 제거 예정

특이 사항

리뷰 요구사항 (선택)

수동 트리거로 PostViewCountConcurrencyTest를 50회 반복 실행해
플레이키니스를 검증할 수 있도록 한다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@whqtker whqtker self-assigned this Jul 9, 2026
@whqtker whqtker added the 기능 label Jul 9, 2026
@whqtker whqtker requested review from Gyuhyeok99 and wibaek as code owners July 9, 2026 06:20
@whqtker whqtker added the 진행 중 자유롭게 merge 가능 label Jul 9, 2026
@whqtker whqtker requested a review from Hexeong as a code owner July 9, 2026 06:20
@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

1. 새 워크플로우 파일 추가

  • .github/workflows/post-view-count-concurrency-test.yml을 신규 생성했어요.
  • workflow_dispatch로 수동 트리거되며 Ubuntu 환경에서 JDK 21과 Gradle을 설정해요.

2. 반복 테스트 실행

  • 지정된 동시성 테스트(PostViewCountConcurrencyTest)를 --rerun-tasks 옵션과 함께 총 50회 반복 실행해요.
  • 매 회차마다 build/test-results/test 결과를 build/repeat-test-results/run-$i로 복사해 별도로 보관해요.

3. 실패 집계 및 리포트 게시

  • 전체 회차 중 실패 횟수를 집계하고, 하나라도 실패하면 exit 1로 워크플로우 자체를 실패 처리해요.
  • mikepenz/action-junit-report@v5를 통해 수집된 JUnit XML 결과를 리포트로 게시해요.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning 템플릿의 관련 이슈와 특이 사항이 비어 있고 작업 내용도 '테스트용' 수준이라 주요 정보를 충분히 담지 못합니다. 관련 이슈 번호, 작업 내용 요약, 특이 사항, 필요 시 리뷰 요구사항을 채워 템플릿을 완성해 주세요.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed 변경 내용인 조회수 동시성 테스트 반복 실행 워크플로우 추가를 정확히 요약합니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/post-view-count-concurrency-test-workflow

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@whqtker whqtker merged commit 38ea842 into develop Jul 9, 2026
3 of 4 checks passed

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.github/workflows/post-view-count-concurrency-test.yml (1)

31-49: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

테스트 루프 단계에 timeout 추가를 권장합니다.

50회 반복되는 Spring Boot 동시성 테스트는 각 회차마다 1000개 스레드 생성과 Thread.sleep(SCHEDULING_DELAY_MS + 1000) 대기를 포함합니다. 특정 회차에서 테스트가 hang되면 워크플로우가 매우 오래 실행될 수 있습니다. timeout-minutes를 지정해 무한 대기 상태를 방지하는 것이 좋습니다.

⏱️ 제안하는 수정
       - name: Run test 50 times
+        timeout-minutes: 60
         run: |
           set +e
           FAIL_COUNT=0
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/post-view-count-concurrency-test.yml around lines 31 - 49,
The “Run test 50 times” step in the workflow can hang indefinitely during the
repeated Spring Boot concurrency test run. Add a timeout limit to the workflow
job or this step so the repeated `./gradlew test` loop in the concurrency test
cannot block forever; keep the change focused on the existing repeat-test step
and its surrounding workflow configuration.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/post-view-count-concurrency-test.yml:
- Around line 14-17: In the Checkout master step using actions/checkout@v4,
explicitly disable persisted GitHub credentials by setting persist-credentials
to false, since this workflow only runs tests and does not need git-auth
persistence. Update the existing checkout configuration in the workflow job so
the actions/checkout invocation includes the new security setting alongside ref:
master.

---

Nitpick comments:
In @.github/workflows/post-view-count-concurrency-test.yml:
- Around line 31-49: The “Run test 50 times” step in the workflow can hang
indefinitely during the repeated Spring Boot concurrency test run. Add a timeout
limit to the workflow job or this step so the repeated `./gradlew test` loop in
the concurrency test cannot block forever; keep the change focused on the
existing repeat-test step and its surrounding workflow configuration.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 65f8241d-5711-4803-8f40-92907f98d5a5

📥 Commits

Reviewing files that changed from the base of the PR and between ac51829 and 228ec6a.

📒 Files selected for processing (1)
  • .github/workflows/post-view-count-concurrency-test.yml

Comment on lines +14 to +17
- name: Checkout master
uses: actions/checkout@v4
with:
ref: master

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win

persist-credentials: false 추가를 권장합니다.

actions/checkout@v4는 기본적으로 GitHub 토큰을 git config에 저장합니다. 이 워크플로우는 테스트 실행만 수행하므로 credential 지속이 불필요하며, 보안 노출면을 줄이기 위해 persist-credentials: false를 명시하는 것이 좋습니다.

🔒️ 제안하는 수정
       - name: Checkout master
         uses: actions/checkout@v4
         with:
           ref: master
+          persist-credentials: false
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Checkout master
uses: actions/checkout@v4
with:
ref: master
- name: Checkout master
uses: actions/checkout@v4
with:
ref: master
persist-credentials: false
🧰 Tools
🪛 zizmor (1.26.1)

[warning] 14-17: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/post-view-count-concurrency-test.yml around lines 14 - 17,
In the Checkout master step using actions/checkout@v4, explicitly disable
persisted GitHub credentials by setting persist-credentials to false, since this
workflow only runs tests and does not need git-auth persistence. Update the
existing checkout configuration in the workflow job so the actions/checkout
invocation includes the new security setting alongside ref: master.

Source: Linters/SAST tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

기능 진행 중 자유롭게 merge 가능

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant