Skip to content

ci: disable CI-unittests caller temporarily#5604

Merged
renecannao merged 1 commit intov3.0from
ci/disable-unittests-caller
Apr 11, 2026
Merged

ci: disable CI-unittests caller temporarily#5604
renecannao merged 1 commit intov3.0from
ci/disable-unittests-caller

Conversation

@renecannao
Copy link
Copy Markdown
Contributor

@renecannao renecannao commented Apr 11, 2026

Summary

Removes the `workflow_run` trigger from `.github/workflows/CI-unittests.yml`, so `CI-unittests` stops firing automatically on every PR/push. Keeps `workflow_dispatch` so it can still be invoked manually.

Inline comment block at the top of the file documents why it's disabled, and lists the three options for re-enabling it later.

Why

Companion PR #5603 on `GH-Actions` strips the unit test binaries from the `_test` cache payload (they're 8.8 GB of 52 binaries at 170 MB each and they blow out GitHub's 10 GB per-repo cache quota when combined with concurrent cascades). Unit tests are still compiled in `ci-builds.yml` — a `UNIT_COUNT > 0` check guards the strip so compile errors still fail the build — but the binaries don't ship in the cache.

`CI-unittests` uses the `SKIP_PROXYSQL` host-only path in `run-tests-isolated.bash`, which expects the unit test binaries to exist on disk after the cache restore. They won't, so the workflow would fail with either:

  1. `Cache restore test` failure (if the rest of `_test` also happens to be evicted)
  2. `SAFETY NET FAIL: zero TAP test binaries were discovered` from the `proxysql-tester.py` safety net added in test: fail proxysql-tester.py TAP runs when zero binaries are discovered (safety net) #5602 (if the rest of `_test` restores fine and only the unit binaries are missing)

Either way the result is a consistently red `CI-unittests` on every cascade, which is noise and actively confusing.

Disabling the automatic trigger removes the noise. The workflow file stays in place so re-enabling is a small PR later when we have a rebuild strategy.

Re-enable instructions (inline comment in the caller)

To re-enable `CI-unittests`:

  1. Decide how it will obtain the unit test binaries. Options:
    • a) `docker compose up ubuntu22_dbg_build` inside `ci-unittests.yml` on `GH-Actions` (self-contained, ~15 min overhead per run)
    • b) Expand `_src` cache to include `lib/libproxysql.a` + `deps//lib/.a` + `test/tap/tap/` and run an incremental `make` in `ci-unittests` (faster, more complex cache design)
    • c) Use `upload-artifact` / `download-artifact` for the unit binaries (different quota, requires `run-id` plumbing from the `workflow_run` chain)
  2. Update `.github/workflows/ci-unittests.yml` on `GH-Actions` accordingly
  3. Restore the `workflow_run` trigger (uncomment the block in this file)

Diff

One file, +32 / -3. Comment block + comment out the `workflow_run:` lines.

Test plan

  • Merge this PR into `v3.0`.
  • Merge the companion ci: shrink _test cache by dropping unit binaries and test/deps (critical) #5603 (strips unit binaries from `_test` cache).
  • Push an empty commit to any PR branch.
  • Verify `CI-unittests` does NOT appear in the PR's Checks tab as a workflow_run-triggered run.
  • Verify `CI-legacy-g*` / `CI-mysql84-g*` workflows successfully restore `_test` from cache (now fitting under the 10 GB quota) and actually run tests.

Out of scope

  • Re-enabling `CI-unittests` with a working rebuild strategy (separate effort)
  • Deleting the `ci-unittests.yml` reusable on `GH-Actions` — it's dormant when no caller invokes it, so there's no cost to leaving it in place and re-enabling becomes a smaller diff later

Summary by CodeRabbit

  • Chores
    • Modified CI/CD workflow configuration for unit tests. Automatic trigger upon completion of prior workflow has been disabled, while manual workflow execution remains available.

…ger)

CI-unittests cannot run in the normal CI cascade right now because the
companion PR on GH-Actions (#5603) strips unit test binaries from the
_test cache payload to keep it under GitHub's 10 GB per-repo quota.
The unit tests are still COMPILED in ci-builds.yml (a sanity check
enforces UNIT_COUNT > 0 before stripping, so compile errors in unit
tests still fail the build) but their binaries don't ship in the cache,
so CI-unittests would fail on "Cache restore test" or on the safety net
in proxysql-tester.py that detects zero discovered test binaries.

Rather than leave CI-unittests producing confusing red failures on
every cascade, remove the workflow_run trigger so it stops firing
automatically. The workflow_dispatch trigger is kept so it can still
be invoked manually from the Actions tab (e.g. to test a re-enablement
branch).

This is intentionally the minimum surgical change:
- No file deletion (preserves the caller for easy re-enable).
- No change to the reusable on GH-Actions (ci-unittests.yml is dormant
  when no caller invokes it).
- An inline comment block at the top of the caller explains the
  situation and lists the options for re-enabling (docker rebuild,
  expanded _src cache with incremental make, or artifact plumbing).

Re-enabling CI-unittests is a separate follow-up effort. The goal for
now is to unblock CI-legacy-g* and CI-mysql84-g* by getting the _test
cache under quota; unit tests will come back later with a proper
rebuild strategy.

Companion PR: #5603
@gemini-code-assist
Copy link
Copy Markdown

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 11, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 27a0bbf3-215f-40b2-825d-4cfd385faa41

📥 Commits

Reviewing files that changed from the base of the PR and between ecd8b72 and 818481a.

📒 Files selected for processing (1)
  • .github/workflows/CI-unittests.yml
📜 Recent review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: claude-review
🔇 Additional comments (2)
.github/workflows/CI-unittests.yml (2)

4-31: Temporary-disable documentation is clear and actionable.

Great context and re-enable checklist here; this makes the operational intent unambiguous for follow-up work.


35-37: Trigger change matches the containment goal.

Keeping workflow_dispatch while disabling workflow_run (Line 35-Line 37) is the right scope for stopping automatic failing cascades without removing the workflow.


📝 Walkthrough

Walkthrough

The workflow_run trigger is removed from the GitHub Actions workflow by commenting out its configuration block. A detailed explanatory comment documents why the automatic unit-test CI cascade is disabled and what conditions would enable re-activation. The workflow_dispatch trigger remains active for manual execution.

Changes

Cohort / File(s) Summary
GitHub Actions Workflow Configuration
.github/workflows/CI-unittests.yml
Commented out the workflow_run trigger that previously cascaded CI execution upon CI-trigger completion. Added extensive explanatory documentation detailing the reason for disabling automatic triggering and requirements for future re-enablement. Job delegation logic remains unchanged.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 Hop, hop, the workflows now rest,
No cascades trigger without request,
Manual dispatch still takes the lead,
With comments clear for all to read.
A pause in automation's dance,
Yet human hands still have a chance! 🚀

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically summarizes the main change: disabling the CI-unittests caller workflow temporarily, which matches the core modification (commenting out the workflow_run trigger) and the PR's primary objective.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/disable-unittests-caller

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 and usage tips.

@sonarqubecloud
Copy link
Copy Markdown

@renecannao renecannao merged commit e3e769f into v3.0 Apr 11, 2026
3 checks passed
renecannao added a commit that referenced this pull request Apr 11, 2026
Final validation of the CI cascade after:
- #5603 (GH-Actions): ci-builds.yml strips unit binaries + test/deps
  from the _test cache to stay under the 10 GB repo quota
- #5604 (v3.0): CI-unittests workflow_run trigger removed so it stops
  firing automatically

Expected signals:
- CI-builds log shows 'Compiled N unit test binaries' (N>0), then
  'Deleted N unit test binaries', then 'test/deps runtime-dependency
  check passed', then 'Deleted test/deps'
- _test cache save size ~1 GB compressed (down from ~4 GB)
- CI-legacy-g*, CI-mysql84-g*, CI-basictests get past 'Cache restore test'
  and actually run their tests for realistic durations (minutes, not
  seconds-and-fail)
- proxysql-tester.py reports PASS N/N with N > 0
- CI-unittests does NOT appear in the cascade (disabled)
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