Skip to content

First#7173

Closed
anishg-bit wants to merge 4 commits intoexpressjs:masterfrom
monkci-testing:first
Closed

First#7173
anishg-bit wants to merge 4 commits intoexpressjs:masterfrom
monkci-testing:first

Conversation

@anishg-bit
Copy link
Copy Markdown

Add CI Benchmark workflow for MonkCI vs GitHub-hosted runner comparison

📝 Summary

Added .github/workflows/ci-benchmark.yml — a new workflow designed to benchmark build-and-test job timing across available MonkCI runners against the standard ubuntu-latest GitHub-hosted runner.

Key Changes:

  • Job Renamed: The job is now named build-and-test with a dynamic display name: name: build-and-test (${{ matrix.runner }}).
  • Runner Matrix: Implemented a matrix.runner strategy running in parallel with fail-fast: false. It now covers the 2 available MonkCI variants alongside ubuntu-latest as the baseline.
  • CI Test Steps: Replaced previous build steps with a standard Node.js CI pipeline for an accurate apples-to-apples comparison.
  • Timing Instrumentation: Added step-level timing to capture Unix timestamps (date +%s) at the start and end (using always()). It computes duration = end - start and writes a Markdown table row to $GITHUB_STEP_SUMMARY.

🎯 Motivation

To quantify the performance difference between available MonkCI runners and the standard GitHub-hosted ubuntu-latest runner on a real Node.js CI workload (install + test).

🚀 Runners Under Test

Runner Reason Included / Status
ubuntu-latest GitHub standard baseline
monkci-runners-4vcpu MonkCI's only currently Idle runner (will pick up jobs immediately)
monkci-ubuntu-24.04-4-3600iops Registered but Offline (may still pick up if it comes online)

🛠️ What each job does

  1. Records start timestamp into $GITHUB_OUTPUT before any work begins.
  2. Checks out the repo (actions/checkout@v4).
  3. Sets up Node.js 22 (actions/setup-node@v4).
  4. Configures npm (npm config set loglevel error).
  5. Installs dependencies (npm install).
  6. Runs tests (npm run test-ci).
  7. Records end time and computes duration, appending a Markdown table row to the Action's Job Summary.

📊 How to read the results

After the workflow completes, open the Actions run and check each job's Summary tab. Each runner will output a summary table looking like this:

Runner Duration (s)
ubuntu-latest 85
monkci-runners-4vcpu 47

Compare each MonkCI row against ubuntu-latest to see the absolute time saved per runner tier from a single workflow run.

✅ Test Plan

  • Trigger workflow via workflow_dispatch to confirm all 3 matrix jobs start.
  • Verify timing summary appears in each job's Summary tab.
  • Confirm ubuntu-latest job completes successfully as the baseline reference.
  • Monitor the offline runner (monkci-ubuntu-24.04-4-3600iops) to see if it successfully joins and completes the job.
  • Compare durations across the completed MonkCI runners against the baseline to identify performance gains.

@krzysdz krzysdz closed this Apr 8, 2026
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.

2 participants