Skip to content

cpu-o3: ci: implement tiered CI arch for faster PR feedback - #589

Merged
jensen-yan merged 11 commits into
xs-devfrom
faster-ci
Nov 4, 2025
Merged

cpu-o3: ci: implement tiered CI arch for faster PR feedback#589
jensen-yan merged 11 commits into
xs-devfrom
faster-ci

Conversation

@jensen-yan

Copy link
Copy Markdown
Collaborator

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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Comment thread .github/workflows/pr-quick-check.yml
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
@jensen-yan

Copy link
Copy Markdown
Collaborator Author

/run-spec

Change-Id: I75c59216bd5a68b279be02cee3c023b584a299ed
@jensen-yan

Copy link
Copy Markdown
Collaborator Author

/run-spec

We need to wait until it's integrated into the main storyline before testing.

Change-Id: I6fcc62d2edb261b5bac28aa93f63bfaa591c439d
Yakkhini
Yakkhini previously approved these changes Nov 4, 2025
Change-Id: Id3f149faa77b96d2f13afc7ae0102ea650da6145
Change-Id: Iac7c9e15c7c117fbac24df73c32cd170103d7684
Change-Id: I0caecd25891cc8f5d0504790300985105a6c7764
@github-actions

github-actions Bot commented Nov 4, 2025

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Coremark IPC: ``

✅ Difftest smoke test passed!

@github-actions

github-actions Bot commented Nov 4, 2025

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Coremark IPC: 2.137504

✅ Difftest smoke test passed!

Change-Id: I50aa59490819691757cce12bc15d409c458b156e
Change-Id: I277c68de961921d52a7f76373e2145fbfd435c5e
@github-actions

github-actions Bot commented Nov 4, 2025

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Coremark IPC: ``

✅ Difftest smoke test passed!

Change-Id: I3e84d8fab908e2ba939d87b20ae8968123e3ee37
Change-Id: I8620fcd6f8779dbb0cdc837f6443ec0619d7368d
Change-Id: I450d07c8dc7bc37cc00381e19a1a49a0f1ebb964
@github-actions

github-actions Bot commented Nov 4, 2025

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.1375 -
This PR 2.1375 ➡️ 0.0000 (0.00%)

✅ Difftest smoke test passed!

@jensen-yan
jensen-yan requested a review from Copilot November 4, 2025 09:46

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Comment thread .github/workflows/pr-quick-check.yml
Comment thread .github/workflows/pr-quick-check.yml
Comment thread .github/workflows/pr-quick-check.yml
Comment thread .github/workflows/on-demand-spec.yml
Comment thread .github/workflows/gem5-perf-template.yml
@github-actions

github-actions Bot commented Nov 4, 2025

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.1375 -
This PR 2.1375 ➡️ 0.0000 (0.00%)

✅ Difftest smoke test passed!

@github-actions

github-actions Bot commented Nov 4, 2025

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.1375 -
This PR 2.1375 ➡️ 0.0000 (0.00%)

✅ Difftest smoke test passed!

@jensen-yan
jensen-yan merged commit 2fa7678 into xs-dev Nov 4, 2025
9 checks passed
@jensen-yan
jensen-yan deleted the faster-ci branch November 4, 2025 10:17
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.

3 participants