Skip to content

Add automated QA flow script for CLI pre-release testing#7051

Draft
alfonso-noriega wants to merge 1 commit intomainfrom
automated-qa-flow
Draft

Add automated QA flow script for CLI pre-release testing#7051
alfonso-noriega wants to merge 1 commit intomainfrom
automated-qa-flow

Conversation

@alfonso-noriega
Copy link
Contributor

@alfonso-noriega alfonso-noriega commented Mar 19, 2026

Automated QA Flow Script

Adds qa/run-qa.mjs — a guided automation script for the CLI Pre-release QA Flow (v2).

What it does

Behavior Examples
Automates CLI commands app init, generate extension, function build/run, deploy, hydrogen init/build
Hands over terminal for interactive steps shopify app dev, shopify app config link
Prompts with ✔/✘ selector for visual checks Dev console, hot reload, GraphiQL, theme extension
Persists results per CLI version + OS Resume from failures, review past runs

Commands

# Full QA run
node qa/run-qa.mjs

# List all steps
node qa/run-qa.mjs --list

# Run specific steps
node qa/run-qa.mjs --only apps.init,apps.ext
node qa/run-qa.mjs --only hydrogen

# Resume from failures (auto-detected on startup)
node qa/run-qa.mjs

# View results summary
node qa/run-qa.mjs --summary
node qa/run-qa.mjs --summary 20260319

# Pass --reset to all shopify commands
node qa/run-qa.mjs --reset

Step registry (28 steps)

Section Steps Automated
Setup Install CLI, verify version, check duplicates ✅ All
Apps Init, config link, 5× extensions, dev console, GraphQL, disconnect, function build/run, deploy, versions list, redeploy ✅ 12 auto, 4 guided
Themes Init, check, package, dev+hotreload, push, list ⊘ Skipped by default (themes team owns)
Hydrogen Init (quickstart), build, dev ✅ 2 auto, 1 guided

Key flags

Flag Purpose
--cli-version <tag> Version to install (default: nightly)
--skip-install Use CLI already on PATH
--reset Pass --reset to all shopify commands
--only <ids> Run specific steps (prefix matching)
--retry-failed Re-run only failed steps
--list Show all steps with status
--summary [version] View results for any version
--results-dir <path> Custom results directory
--include-themes Opt-in to theme steps

Results persistence

Results are saved to ~/Desktop/qa-results/qa-{version}-{platform}.json after every step. On next run, the script detects existing results and offers:

  • [c] Continue — retry failed + run remaining steps
  • [f] Fresh start — run everything from scratch
  • [q] Quit

Cross-OS

Zero dependencies (only node:* built-ins). Same command on macOS, Linux, and Windows.

Introduces qa/run-qa.mjs — a guided automation script that walks through the
full CLI Pre-release QA Flow (v2) step-by-step.

The script automates CLI commands where possible, hands over terminal control
for interactive steps, and prompts the user with a visual pass/fail selector
for manual verification checks.

Key features:
- Step registry with unique IDs for selective execution
- Results persisted per CLI version + platform after every step
- Smart resume: detects previous run and offers to continue from failures
- Cross-OS support (macOS, Linux, Windows) with zero dependencies
- Interactive pass/fail selector (arrow keys) for QA checks
- Background dev server management with automatic cleanup

Co-authored-by: Claude <noreply@anthropic.com>
Copy link
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions
Copy link
Contributor

Coverage report

St.
Category Percentage Covered / Total
🟢 Statements 82.22% 14928/18157
🟡 Branches 74.65% 7393/9904
🟢 Functions 81.36% 3767/4630
🟢 Lines 82.61% 14115/17086

Test suite run success

3910 tests passing in 1502 suites.

Report generated by 🧪jest coverage report action from bb70fba

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