fix(ci): release gate skips past runs where desktop tests didn't execute#401
Conversation
…'t execute The desktop E2E verification loop stopped at the first failed CI run in the release range without checking if desktop tests actually ran. When a non-desktop failure (e.g., TEE worker) occurred at a newer commit, it blocked the gate even though desktop tests passed at an older commit. Fix: always check run_executed_tests before using a run's conclusion. Skip runs where desktop jobs were skipped regardless of overall result. Also update the helper to detect any non-skipped desktop job (not just successful ones) so failed desktop runs are still caught. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Entire-Checkpoint: 2c7ec5f4ecf0
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 16 minutes and 52 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughUpdated the Desktop E2E release gate verification logic to query Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #401 +/- ##
=======================================
Coverage 61.25% 61.25%
=======================================
Files 133 133
Lines 9790 9790
Branches 986 986
=======================================
Hits 5997 5997
Misses 3577 3577
Partials 216 216
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
The release gate only searched ci-e2e.yml orchestrator runs for desktop E2E results. But desktop tests often run as standalone desktop-e2e.yml workflows (triggered independently), not as nested jobs in the orchestrator. Added fallback: if no ci-e2e run has desktop tests executed, search standalone desktop-e2e.yml runs in the release range. Also check desktop-e2e.yml first for HEAD run. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Entire-Checkpoint: cf50ea29fc5f
…ectly Instead of searching ci-e2e.yml orchestrator runs and inspecting nested jobs, just query desktop-e2e.yml runs directly. The workflow name is the same regardless of how it was triggered (standalone or via orchestrator). Removes the run_executed_tests helper and dual-source search logic. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Entire-Checkpoint: e61fa4db07ef
There was a problem hiding this comment.
Pull request overview
Updates the release PR “gate” workflow to determine Desktop E2E verification status by querying desktop-e2e.yml workflow runs directly, instead of inferring Desktop E2E execution from ci-e2e.yml orchestrator runs.
Changes:
- Switch Desktop E2E verification to
gh run list --workflow=desktop-e2e.ymlfor HEAD and for commits since the previous tag. - Simplify the polling/selection logic to use the workflow run conclusion rather than job-level checks.
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/workflows/release-gate.yml:
- Around line 214-221: The current lookup sets HEAD_RUN to the first run
returned by gh run list that matches MAIN_SHA which can pick an older standalone
run; instead iterate RANGE_COMMITS from newest to oldest and for each commit SHA
call gh run list (workflow=desktop-e2e.yml, branch=main) to find a run with
headSha equal to that SHA, set HEAD_RUN to the first found run and break; apply
the same change to the later block around the HEAD_RUN logic at the 271-286
section so both places resolve runs by commit recency (use the RANGE_COMMITS
variable and MAIN_SHA/each SHA in the loop when querying gh run list).
- Around line 271-299: The current logic only lists completed runs
(select(.status == "completed")) so it can skip a newer in-flight Desktop E2E
run and fall back to an older green run; change the RUNS query to include
non-completed runs (remove the select by status, optionally sort by
databaseId/headSha so newest runs come first), then in the loop pick the first
matching run (using FOUND_SHA/FOUND_RUN_ID/FOUND_CONCLUSION as before) and if
its status is not "completed" poll that specific run (gh run view --repo ${{
github.repository }} --job --json status,conclusion --jq or similar) until it
reaches a terminal state or a timeout, then only accept if the final conclusion
== "success" (otherwise error/exit); keep the rest of the failure messages but
base them on the polled run (FOUND_RUN_ID/FOUND_CONCLUSION).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 3d1a8423-05a3-49ed-990e-07d8dfe8f22a
📒 Files selected for processing (1)
.github/workflows/release-gate.yml
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Entire-Checkpoint: 2fa157f99119
Two fixes to the range search: 1. Iterate RANGE_COMMITS newest-first instead of trusting gh run list order, so a re-triggered run for an older commit can't shadow a newer commit's run. 2. Include in-progress runs and poll them if found, instead of only considering completed runs (which could skip a newer in-flight run and accept a stale green). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Entire-Checkpoint: 5343c745fc97
Summary
ci-e2e.ymlorchestrator runs and inspected nested job conclusions. But desktop tests often run as standalonedesktop-e2e.ymlworkflows, so the gate never found them.desktop-e2e.ymlruns directly by workflow name. The workflow name is the same regardless of trigger (standalone push, orchestratorworkflow_call, orworkflow_dispatch). No job introspection needed.run_executed_testshelper and dual-source search logic in favor of a singlegh run list --workflow=desktop-e2e.ymlquery.PREV_TAG..HEAD, fail if it didn't succeed.Test plan
gh run list --workflow=desktop-e2e.yml --branch=mainreturns the successful runs (23697467425, 23720651610) that the old logic missed🤖 Generated with Claude Code