Skip to content

fix: keep independent CI checks off the critical path - #1567

Merged
kang-heewon merged 2 commits into
trunkfrom
agent/reduce-ci-runtime
Jul 27, 2026
Merged

fix: keep independent CI checks off the critical path#1567
kang-heewon merged 2 commits into
trunkfrom
agent/reduce-ci-runtime

Conversation

@kang-heewon

@kang-heewon kang-heewon commented Jul 27, 2026

Copy link
Copy Markdown
Member

Outcome

CI now classifies the verification profile before the blocking validation job, runs ecosystem advisory smoke and API documentation drift checks independently of the blocking profile, and limits the Windows scaffold lane to relevant pull-request changes while retaining it for trunk and manual runs.

Turbo task state is restored across CI, benchmark, release, and PR review workflows with immutable, job-scoped cache keys. The Windows scaffold build no longer forces cache misses. Blocking verification, security scans, evidence uploads, and release verification remain intact.

Verification

  • pnpm verify:repo — 22/23 applicable repository gates passed; one was not applicable
  • Focused workflow and policy suites — 157/157 tests passed
  • Pre-push workspace tests — 230/230 tasks passed
  • Pre-push workspace typecheck — 229/229 tasks passed
  • Workflow YAML parsing, formatting, and diff integrity checks passed
  • Auto-changeset confirmed there are no publishable package changes

Review gates

  • Correctness: profile selection remains authoritative and invokes exactly one shared verification manifest.
  • Security: blocking Gitleaks behavior and redacted evidence remain in the validation lane; the cache action is pinned to an immutable revision.
  • Reliability: cache keys isolate operating system, dependency graph, job, and commit while allowing bounded same-job and same-OS fallback.
  • Scope: package APIs, runtime behavior, and release artifacts are unchanged.

Residual risk

The first hosted run is expected to be cold. Runtime improvement and cache hit rates should be evaluated over several subsequent CI runs; the verification manifest itself remains serial because its tracked-file guards and evidence artifacts share mutable workspace state.

Summary by CodeRabbit

  • 개선 사항
    • CI, 벤치마크, 릴리스 및 PR 검토 작업에서 Turbo 캐시를 활용해 반복 작업의 실행 효율을 높였습니다.
    • 변경 사항에 따라 필요한 검증 및 문서 작업만 실행되도록 CI 흐름을 개선했습니다.
    • Windows 스캐폴딩, 생태계 권고 사항 및 생성 앱 스모크 테스트 검증을 강화했습니다.
    • 관련 검증 결과와 실패 정보를 더 일관되게 수집하고 확인할 수 있습니다.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@kang-heewon, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 41 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 2db49990-fdfb-4f22-b7a9-c2d7800b5270

📥 Commits

Reviewing files that changed from the base of the PR and between 70b0e56 and a0b965e.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • scripts/tests/ci-workflow.spec.ts
  • scripts/tests/verification-policy.spec.ts
📝 Walkthrough

Walkthrough

CI가 changes 작업의 프로필과 변경 감지 출력을 사용하도록 재구성되었습니다. ecosystem-advisory 작업과 Windows 스캐폴딩 조건이 추가되었고, 여러 작업에서 .turbo 캐시 복원이 활성화되었습니다. 관련 워크플로 계약 테스트도 갱신되었습니다.

Changes

CI 검증 및 실행 흐름

Layer / File(s) Summary
검증 프로필 출력 및 소비 경로
.github/workflows/ci.yml, scripts/tests/ci-workflow.spec.ts, scripts/tests/verification-policy.spec.ts
검증 프로필과 base 값이 changes 작업에서 제공되며, validate의 검증 실행·요약·아티팩트 업로드와 테스트 기대값이 새 출력을 참조합니다.
독립 CI 작업 및 실행 조건
.github/workflows/ci.yml, scripts/tests/ci-workflow.spec.ts
ecosystem-advisory 작업과 Windows 스캐폴딩 변경 감지 조건이 추가되고, docs-sync-check가 validate와 독립적으로 실행되도록 조정되었습니다. 생성 앱 실패 아티팩트 업로드도 추가되었습니다.
워크플로우별 Turbo 캐시 복원
.github/workflows/ci.yml, .github/workflows/benchmark.yml, .github/workflows/pr-review-companion.yml, .github/workflows/release.yml
validate, Windows 스캐폴딩, 문서 작업, 벤치마크, PR 리뷰 보조, 릴리스 작업에서 .turbo 캐시를 키와 restore-keys로 복원합니다.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant ChangesJob
  participant ValidateJob
  participant EcosystemAdvisory
  participant DocsSyncCheck
  participant ArtifactStore
  ChangesJob->>ValidateJob: profile 및 base 출력 전달
  ChangesJob->>EcosystemAdvisory: profile 조건 전달
  ChangesJob->>DocsSyncCheck: 변경 감지 결과 전달
  ValidateJob->>ArtifactStore: 검증 및 생성 앱 실패 아티팩트 업로드
  EcosystemAdvisory->>ArtifactStore: 자문 결과 및 실패 아티팩트 업로드
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 독립적인 CI 검사들을 블로킹 경로에서 분리한다는 PR의 핵심 변경을 잘 요약합니다.
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 agent/reduce-ci-runtime

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.

@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown

📊 Benchmark Results

✅ All benchmarks passed

Benchmark p75 Threshold Baseline vs Baseline Status Notes
CrocoApp constructor 9.1μs 30.0ms 8.2μs +11.0% -
CrocoApp lambdaHandler (10 controllers) 241.3μs 50.0ms 258.4μs -6.6% -
Lambda cold-start simulation 430.8μs 80.0ms 418.1μs +3.0% -
Lambda cold-start with headers 379.6μs 80.0ms 369.7μs +2.7% -
Lambda cold-start with binary body 356.8μs 80.0ms 339.1μs +5.2% -
Lambda cold-start with query params 298.1μs 80.0ms 301.3μs -1.1% -
Lambda cold-start with authorizer context 296.0μs 80.0ms 299.8μs -1.3% -
Lambda cold-start realistic scenario 294.7μs 80.0ms 299.2μs -1.5% -
EventBusConfig.start (10 handlers) 1.9μs 10.0ms 1.4μs +30.6% -
EventPublisher.publishNow single event 2.0μs 2.0ms 1.7μs +20.2% -
DefaultHandlerResolver.resolve × 10 0.1μs 5.0ms 0.1μs +0.0% -
Container.get singleton (cold) 61.8μs 5.0ms 70.3μs -12.1% -
Container.register × 50 components 3.2ms 10.0ms 3.2ms -1.5% -
Container.validate (50 components) 3.7ms 20.0ms 3.4ms +8.4% -
Container.get singleton (warm) 1.7μs 500.0μs 1.6μs +1.8% -
TelemetryRuntime.init (lambda preset) 2.4μs 200.0ms 1.1ms -99.8% -
lambdaPreset config creation 1.5μs 2.0ms 1.4μs +4.9% -

Updated: 2026-07-27T15:29:26.630Z · Commit: 6e77ce2

coderabbitai[bot]
coderabbitai Bot previously requested changes Jul 27, 2026

@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: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/ci.yml (1)

1-1: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Turbo 캐시 복원 스텝이 5개 job에 동일하게 중복됩니다. path, key 공식, restore-keys 폴백 체인, 액션 SHA까지 완전히 동일한 블록이 반복되므로, composite action(예: .github/actions/restore-turbo-cache/action.yml)으로 추출하면 향후 캐시 키 전략 변경 시 한 곳만 수정하면 됩니다.

  • .github/workflows/ci.yml#L65-74: validate job의 캐시 복원 스텝을 composite action 호출로 교체.
  • .github/workflows/ci.yml#L469-478: ecosystem-advisory job의 동일 스텝을 같은 composite action 호출로 교체.
  • .github/workflows/ci.yml#L535-544: windows-scaffold job의 동일 스텝을 같은 composite action 호출로 교체.
  • .github/workflows/ci.yml#L603-611: docs-sync-check job의 동일 스텝을 같은 composite action 호출로 교체.
  • .github/workflows/ci.yml#L635-644: docs-build job의 동일 스텝을 같은 composite action 호출로 교체.
🤖 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/ci.yml at line 1, Extract the duplicated Turbo cache
restore step from the validate, ecosystem-advisory, windows-scaffold,
docs-sync-check, and docs-build jobs into a shared composite action at
.github/actions/restore-turbo-cache/action.yml, preserving the existing path,
key formula, restore-keys fallback chain, and action SHA. Replace each inline
cache block with a call to the shared composite action so future cache-strategy
changes are centralized.
🤖 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/ci.yml:
- Around line 450-459: Update the Checkout step in the ecosystem-advisory job to
disable persisted credentials by configuring persist-credentials as false,
matching the existing validate and changes jobs and resolving the zizmor
artipacked warning.
- Around line 450-514: ecosystem-advisory 작업이 기본 권한을 상속하지 않도록 job 수준에 최소 권한을
명시하세요. 해당 job 정의에 permissions 블록을 추가하고 저장소 읽기와 아티팩트 업로드에 필요한 actions 권한만 허용하도록
contents: read 및 actions: read를 설정하세요.
- Around line 140-144: Update the workflow steps that directly interpolate
needs.changes.outputs.profile or base inside run scripts, including the audit
policy, security summary, validation, and summary/archive sections. Pass these
outputs through each step’s env mapping, then reference the resulting PROFILE
and BASE_REF shell variables in the script while preserving the existing
behavior.

---

Outside diff comments:
In @.github/workflows/ci.yml:
- Line 1: Extract the duplicated Turbo cache restore step from the validate,
ecosystem-advisory, windows-scaffold, docs-sync-check, and docs-build jobs into
a shared composite action at .github/actions/restore-turbo-cache/action.yml,
preserving the existing path, key formula, restore-keys fallback chain, and
action SHA. Replace each inline cache block with a call to the shared composite
action so future cache-strategy changes are centralized.
🪄 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: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 9f06851e-a6a0-48e6-95ae-27665234be88

📥 Commits

Reviewing files that changed from the base of the PR and between 4137d6d and 70b0e56.

📒 Files selected for processing (6)
  • .github/workflows/benchmark.yml
  • .github/workflows/ci.yml
  • .github/workflows/pr-review-companion.yml
  • .github/workflows/release.yml
  • scripts/tests/ci-workflow.spec.ts
  • scripts/tests/verification-policy.spec.ts

Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml
Comment thread .github/workflows/ci.yml
@kang-heewon

Copy link
Copy Markdown
Member Author

@coderabbitai resolve

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
✅ Action performed

Comments resolved and changes approved.

@kang-heewon
kang-heewon dismissed coderabbitai[bot]’s stale review July 27, 2026 17:07

Superseded by CodeRabbit approval on current head a0b965e after all actionable findings were addressed.

@kang-heewon
kang-heewon merged commit 425fbc3 into trunk Jul 27, 2026
16 of 17 checks passed
@kang-heewon
kang-heewon deleted the agent/reduce-ci-runtime branch July 27, 2026 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant