Repository navigation
ci: cancel superseded Full CI runs per PR - #294
Conversation
Signed-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: ai-dynamo/aisimulate/.coderabbit.yaml Review profile: ASSERTIVE Plan: Enterprise Run ID: 📒 Files selected for processing (1)
🔗 Linked repositories identifiedCodeRabbit considers these linked repositories for cross-repo context during reviews:
Included review availability: Your plan provides up to 12 included reviews per hour; 9 remain after this review. 📜 Recent review details🧰 Additional context used📓 Path-based instructions (3)Check commands, defaults, supported runtimes, public names, and claims against executable behavior.⚙️ CodeRabbit configuration file Files:
Read REVIEW.md before commenting.⚙️ CodeRabbit configuration file Files:
Before making any change under: `python/aisimulate/src/aiconfigurator/generator/**` MUST read: `python/aisimulate/.claude/rules/generator-development.md` Before making any change under `python/aisimulate/collector/**` MUST read: `python/ais...📄 CodeRabbit inference engine (AGENTS.md) Files:
🔀 Multi-repo context ai-dynamo/dynamo, ai-dynamo/aiconfiguratorLinked repositories findingsai-dynamo/dynamo
ai-dynamo/aiconfigurator
📝 SummaryRisk level: Medium. Human attention should focus on concurrency-group boundaries, trusted-copy SHA verification, and exact-head Full CI validation. Changed behavior
Public contracts
Technical quality
Merge readiness
WalkthroughFull CI now uses workflow-level concurrency. Trusted pull-request copies and eligible manual branch runs share groups, while main, release, and other lifecycle runs use unique run IDs. Tests and CI documentation cover these rules. ChangesFull CI concurrency control
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes 🚥 Pre-merge checks | ✅ 7 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (7 passed)
Full details: Modeling And Data EvidenceExplanation The PR changes selection logic in Resolution Add reproducible evidence for the concurrency policy. Use a machine-readable fixture with event, ref, run ID, expected group, and expected cancellation/isolation outcome for trusted PR copies, manual source branches, main, release branches, and tags. Validate the fixture with an independent policy evaluator, include anomaly checks for PR isolation and lifecycle uniqueness, and record the pre-change versus post-change results with provenance (workflow revision and case source).
Comment |
Signed-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>
…urrency Signed-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>
|
@coderabbitai full review Please review current head |
|
✅ Action performedFull review finished. |
|
/ok to test 56aeb08 |
Signed-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>
|
/ok to test ddb63d5 |
Signed-off-by: Jason Zhou (Engrg-Hardware 1) <jasonzho@nvidia.com>
jasonqinzhou
left a comment
There was a problem hiding this comment.
Fresh Codex review of 72c3e70 after integrating main 7ae483e: no remaining actionable finding.
Reviewed the full three-file feature diff and surrounding workflow dispatch, trusted-copy SHA verification, scope selection, Fast CI prerequisite, and release staging paths. The feature diff is byte-identical to the prior revision. Cancellation identity uses only the workflow ref; trusted copies group across push/manual events, source branches are isolated by ref, and lifecycle/tag runs retain unique run IDs. Both prior inline findings are fixed and resolved.
Validation on this head: 316 CI/workflow/release tests passed with Python 3.12, working Node, and CI-pinned pip-licenses; Ruff lint/format, copyright headers, packaged legal files, documentation links, and diff hygiene passed.
The CodeRabbit modeling-data warning does not identify a product-model change: this PR changes GitHub scheduling policy only. The tests provide explicit cancellation/isolation expectations for eight boundary cases, while the description states that deliberate live duplicate-run cancellation is not exercised. Native scheduler semantics match GitHub's documented concurrency contract. No numerical oracle or modeling fixture is applicable.
Current-head CodeRabbit and required CI remain to be refreshed. Human approval is separate and will be rechecked before merge.
|
@coderabbitai review current head 72c3e70. Main is now integrated; the complete three-file feature diff is unchanged. Please refresh the current-head review before trusted Full CI admission. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '=== checked out revision ==='
git rev-parse HEAD
printf '%s\n' '=== base candidates ==='
git branch --all --no-color | sed -n '1,80p'
printf '%s\n' '=== merge-base diff stat (main...HEAD) ==='
git diff --stat main...HEAD
printf '%s\n' '=== changed paths (main...HEAD) ==='
git diff --name-status main...HEAD
printf '%s\n' '=== workflow outline ==='
ast-grep outline .github/workflows/ci.yml --items all || true
printf '%s\n' '=== workflow relevant content ==='
cat -n .github/workflows/ci.yml | sed -n '1,260p'
printf '%s\n' '=== CI contract test outline ==='
ast-grep outline tests/test_ci_workflow_contracts.py --items all --type function || true
printf '%s\n' '=== CI contract test relevant content ==='
cat -n tests/test_ci_workflow_contracts.py | sed -n '1,360p'
printf '%s\n' '=== CI documentation changed-region content ==='
cat -n docs/ci.md | sed -n '1,360p'
printf '%s\n' '=== exact patch ==='
git diff --no-ext-diff --unified=80 main...HEAD -- .github/workflows/ci.yml docs/ci.md tests/test_ci_workflow_contracts.py
printf '%s\n' '=== related workflow expressions and workflow dispatch usage ==='
rg -n -C 3 --glob '*.yml' --glob '*.yaml' \
'concurrency:|workflow_dispatch:|pull-request/' .github/workflows || trueLength of output: 1889 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '=== checked out revision ==='
git rev-parse HEAD
printf '%s\n' '=== merge-base diff stat (main...HEAD) ==='
git diff --stat main...HEAD
printf '%s\n' '=== changed paths (main...HEAD) ==='
git diff --name-status main...HEAD
printf '%s\n' '=== workflow ==='
cat -n .github/workflows/ci.yml | sed -n '1,280p'
printf '%s\n' '=== CI contract tests ==='
cat -n tests/test_ci_workflow_contracts.py | sed -n '1,380p'
printf '%s\n' '=== CI documentation ==='
cat -n docs/ci.md | sed -n '1,380p'
printf '%s\n' '=== exact patch ==='
git diff --no-ext-diff --unified=80 main...HEAD -- .github/workflows/ci.yml docs/ci.md tests/test_ci_workflow_contracts.py
printf '%s\n' '=== related workflow expressions ==='
rg -n -C 3 --glob '*.yml' --glob '*.yaml' \
'concurrency:|workflow_dispatch:|pull-request/' .github/workflows || trueLength of output: 1358 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '=== HEAD commit metadata and parents ==='
git show --no-patch --format='commit=%H%nparents=%P%nsubject=%s' HEAD
printf '%s\n' '=== HEAD changed paths ==='
git show --no-ext-diff --format='' --name-status HEAD
printf '%s\n' '=== HEAD patch for review files ==='
git show --no-ext-diff --format='' --unified=100 HEAD -- \
.github/workflows/ci.yml docs/ci.md tests/test_ci_workflow_contracts.py
printf '%s\n' '=== current workflow ==='
cat -n .github/workflows/ci.yml | sed -n '1,300p'
printf '%s\n' '=== current CI workflow contract tests ==='
cat -n tests/test_ci_workflow_contracts.py | sed -n '1,420p'
printf '%s\n' '=== current CI documentation ==='
cat -n docs/ci.md | sed -n '1,420p'
printf '%s\n' '=== all Full CI workflow references ==='
rg -n -C 4 --glob '*.yml' --glob '*.yaml' \
'workflow_dispatch:|concurrency:|github\.event_name|github\.ref_name|pull-request/' \
.github/workflows || true
printf '%s\n' '=== test helpers that evaluate workflow expressions ==='
rg -n -C 5 --type py \
'concurrency|workflow.*expression|github\.event_name|github\.ref_name|pull-request/' \
tests || trueLength of output: 167401 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '=== feature commit availability ==='
git cat-file -e 56aeb08a48d4c0276c3724acffb8fa8382f3a076^{commit} && echo available || true
printf '%s\n' '=== changed paths since reviewed feature commit ==='
git diff --name-status 56aeb08a48d4c0276c3724acffb8fa8382f3a076..HEAD || true
printf '%s\n' '=== current Full CI concurrency declaration ==='
sed -n '1,45p' .github/workflows/ci.yml | cat -n
printf '%s\n' '=== current Full CI SHA-validation context ==='
sed -n '45,130p' .github/workflows/ci.yml | cat -n
printf '%s\n' '=== current concurrency contract helper and cases ==='
sed -n '1100,1160p' tests/test_ci_workflow_contracts.py | cat -n
printf '%s\n' '=== current concurrency documentation ==='
rg -n -C 6 -i 'cancel|concurren|manual.*Full CI|trusted.*copy|expected_sha' docs/ci.md
printf '%s\n' '=== exact feature-file diff from reviewed feature commit to current head ==='
git diff --no-ext-diff --unified=20 56aeb08a48d4c0276c3724acffb8fa8382f3a076..HEAD -- \
.github/workflows/ci.yml docs/ci.md tests/test_ci_workflow_contracts.py || true
printf '%s\n' '=== parse workflow and report concurrency object ==='
python - <<'PY'
from pathlib import Path
import yaml
workflow = yaml.safe_load(Path(".github/workflows/ci.yml").read_text())
print(workflow["concurrency"])
PYLength of output: 31324
Verified:
The local clone lacks the earlier commit and a merge base with You are interacting with an AI system. |
|
/ok to test 72c3e70 |
|
Verified squash merge into main:
PR description and validation notes now reflect the completed merge. |
Why and what changed
Full CI currently lets superseded PR revisions keep consuming runners. A second push to
pull-request/159, for example, can leave both revisions' build/test matrices active.Add workflow-level concurrency that replaces older queued and running validation for the same trusted PR copy. Automatic and manual runs on
pull-request/Nshare a group. Manual source-branch runs replace only that branch's runs. Different PRs remain independent, and every main/release/tag run keeps a unique group.Review map
.github/workflows/ci.yml(group selection and cancellation);tests/test_ci_workflow_contracts.py(group identity and protected refs);docs/ci.md(current-SHA PR admission, manual-run limitations, and retry guidance).Evidence
Validated head:
72c3e703ae01c3b69f4a625afcdc972d916cf4db, incorporating main7ae483e942b0a2593d55e4e30957f94640580441. Squash-merged into main asc8ba25e8ff9d7c17dbb3d980e4c2311071e0c2bdon 2026-09-19 at 03:19:09 UTC. The three-file feature diff is unchanged by the integration merge.python -m pytest -c /dev/null tests/test_ci_workflow_contracts.py tests/test_ci_qualification.py tests/test_release_fpe.py -q -p no:cacheprovider --override-ini=filterwarnings=error. The environment includes the CI-pinnedpip-licenses==5.5.5dependency.git diff --checkpass.72c3e703ae01c3b69f4a625afcdc972d916cf4dbfound no actionable issue. Both previous findings remain fixed and their threads are resolved.pull-request/294was verified to equal72c3e703ae01c3b69f4a625afcdc972d916cf4db. The earlier green runs are historical evidence only.main, has parent7ae483e942b0a2593d55e4e30957f94640580441, and exactly matches the validated tree8c80e62912b7a3c5ceb30c088c84b8e19f66d12c;git diffbetween validated head and merge commit is empty.Modeling or data provenance
N/A — no modeling, performance data, or prediction changes.
Tracking