cpu-o3: ci: implement tiered CI arch for faster PR feedback - #589
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR implements a tiered CI architecture to improve PR feedback time from 2-4 hours to 5-10 minutes by separating fast PR checks (Tier 1) from comprehensive post-merge tests (Tier 2), and introducing on-demand performance testing (Tier 1.5).
Key changes:
- Created fast PR quick-check workflow with basic builds, unit tests, and smoke tests
- Added on-demand SPEC performance testing triggered by PR comments
- Removed pull_request triggers from existing workflows to eliminate redundancy
Reviewed Changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/pr-quick-check.yml |
New Tier 1 workflow providing 5-10 minute feedback with build verification, unit tests, and difftest smoke test |
.github/workflows/on-demand-spec.yml |
New Tier 1.5 workflow enabling comment-triggered performance tests with command parsing and permission controls |
.github/workflows/gem5.yml |
Updated to Tier 2 post-merge only, removed pull_request trigger and duplicate tests (unit_tests, difftest_check) |
.github/workflows/gem5-vector.yml |
Removed pull_request trigger, now post-merge only |
.github/workflows/gem5-perf.yml |
Removed pull_request trigger, directing users to on-demand testing |
.github/workflows/gem5-perf-template.yml |
Enhanced artifact upload with fallback to shared storage and extended retention |
.github/workflows/gem5-ideal-btb-perf.yml |
Removed pull_request trigger, updated comments to clarify post-merge and manual triggers |
.github/workflows/gem5-ideal-btb-perf-nosc.yml |
Removed push/pull_request triggers, now manual-only workflow |
.github/workflows/README.md |
Comprehensive documentation of the tiered CI architecture, usage guide, and design principles |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Refactor CI pipeline into three tiers to balance speed and thoroughness: **Tier 1: PR Quick Check (5-10 minutes)** - New workflow: `.github/workflows/pr-quick-check.yml` - Runs on every PR push for fast feedback - Includes: build, unit tests, difftest smoke test - Follows DRY principle: tests not repeated in post-merge **Tier 1.5: On-Demand Performance Testing** - New workflow: `.github/workflows/on-demand-spec.yml` - Triggered by PR comment: `/run-spec [benchmark_type]` - Supports: spec06-0.8c (default), spec06-1.0c, spec17-1.0c, RVV variants - Permission-gated: OWNER/MEMBER/COLLABORATOR only - Simplifies maintenance: benchmark types managed in template only **Tier 2: Post-Merge Full Testing** - Modified workflows: `gem5.yml`, `gem5-perf.yml`, `gem5-vector.yml`, etc. - Removed `pull_request` triggers, kept `push` to `xs-dev` - Runs comprehensive regression tests after merge - Removed duplicate jobs (unit_tests, difftest_check) per DRY **Benefits** - PR feedback time: 2-4 hours → 5-10 minutes (95%+ improvement) - On-demand perf testing: saves CI resources, runs only when needed - Better separation of concerns: fast checks vs. thorough validation - Easier maintenance: centralized benchmark configuration Related workflows updated: - pr-quick-check.yml (new) - on-demand-spec.yml (new) - gem5.yml (modified) - gem5-perf.yml (modified) - gem5-vector.yml (modified) - gem5-ideal-btb-perf.yml (modified) - gem5-ideal-btb-perf-nosc.yml (modified) - gem5-perf-template.yml (simplified) Change-Id: I6798375b787cec2f2e078e7a17f4a21cfc894dc8
|
/run-spec |
Change-Id: I75c59216bd5a68b279be02cee3c023b584a299ed
We need to wait until it's integrated into the main storyline before testing. |
Change-Id: I6fcc62d2edb261b5bac28aa93f63bfaa591c439d
Change-Id: Id3f149faa77b96d2f13afc7ae0102ea650da6145
Change-Id: Iac7c9e15c7c117fbac24df73c32cd170103d7684
Change-Id: I0caecd25891cc8f5d0504790300985105a6c7764
🚀 Coremark Smoke Test ResultsCoremark IPC: `` ✅ Difftest smoke test passed! |
🚀 Coremark Smoke Test ResultsCoremark IPC: ✅ Difftest smoke test passed! |
Change-Id: I50aa59490819691757cce12bc15d409c458b156e
Change-Id: I277c68de961921d52a7f76373e2145fbfd435c5e
🚀 Coremark Smoke Test ResultsCoremark IPC: `` ✅ Difftest smoke test passed! |
Change-Id: I3e84d8fab908e2ba939d87b20ae8968123e3ee37
Change-Id: I8620fcd6f8779dbb0cdc837f6443ec0619d7368d
Change-Id: I450d07c8dc7bc37cc00381e19a1a49a0f1ebb964
🚀 Coremark Smoke Test Results
✅ Difftest smoke test passed! |
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.
Comments suppressed due to low confidence (1)
.github/workflows/README.md:1
- The emoji rendering appears corrupted. The character '��' suggests an encoding issue with the emoji that should represent detailed performance metrics.
# GEM5 分层CI架构 (Tiered CI)
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
🚀 Coremark Smoke Test Results
✅ Difftest smoke test passed! |
🚀 Coremark Smoke Test Results
✅ Difftest smoke test passed! |
Refactor CI pipeline into three tiers to balance speed and thoroughness:
Tier 1: PR Quick Check (5-10 minutes)
.github/workflows/pr-quick-check.ymlTier 1.5: On-Demand Performance Testing
.github/workflows/on-demand-spec.yml/run-spec [benchmark_type]Tier 2: Post-Merge Full Testing
gem5.yml,gem5-perf.yml,gem5-vector.yml, etc.pull_requesttriggers, keptpushtoxs-devBenefits
Related workflows updated:
Change-Id: I6798375b787cec2f2e078e7a17f4a21cfc894dc8