Skip to content

CI: ground-truth parts cut by pytest-split least_duration (Part of #5133) - #5264

Merged
squid-protocol merged 7 commits into
mainfrom
churn/5133-20261016T1408Z
Oct 17, 2026
Merged

squid-protocol merged 7 commits into
mainfrom
churn/5133-20261016T1408Z

Conversation

@squid-protocol

@squid-protocol squid-protocol commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

Part of #5133 (workflow half; the code half merged as #5255).

Class

The recorded seconds behind the CI part splits no longer describe the real tests, so a split balanced "on paper" is not balanced in CI.

Member Status This PR
ground-truth parts cut by hand-listed files fixed: --splits 2 --splitting-algorithm least_duration --group N (commit 3475856) yes
.test_durations tests/cobol_mainframe/ entries (1479 s recorded, real ~1927 s) refreshed from run 38911788855's part artifacts: 5084 -> 5105 entries, 21 new, 0 dropped yes
merge_test_durations.py could not read the {"seconds","slow"} part artifacts it is documented for now reads both shapes, test added yes
ledger gate + history on group 2 moved from group 1 yes
full-suite / smoke parts already least_duration over the nightly cache or committed file no change

What changed

  • mainframe-ground-truth.yml: group: [1, 2], no hand-listed files; the ledger gate and history moved to group 2. This workflow edit needs the owner: the queue item carries no allow_workflows. It is commit 3475856, the original change of this PR; dropping it breaks test_ci_critical_path_split.py, which asserts it.
  • .test_durations: real seconds from main run 38911788855 (2ebcf8d).
  • tests/tools/merge_test_durations.py (+ test), tests/tools/test_ci_critical_path_split.py, docs/ci.md.

Evidence (main run 38911788855)

  • Recorded seconds: part 1 = 1400 s (4653 tests, cold corpus scans), part 2 = 527 s (452 tests, warm scans). Wall: part 1 11m24s, part 2 2m50s.
  • least_duration replay: old file 740 / 740 s -> refreshed file 964 / 964 s (the old file lacked the scan cost).
  • Gates: pr_gates --fast 6/6; test_ci_critical_path_split.py + test_merge_test_durations.py pass.

Sibling gaps

  • Real wall balance after this cut: unmeasured, needs the next main run (part 2's seconds are warm-scan, part 1's cold). Re-merge its test-times-ground-truth-part-N artifacts then.
  • Smoke parts keep their own durations cache; not touched.

Cross-repo

None.

Lessons for agents

  • test-times-ground-truth-part-N artifacts use the GITGALAXY_TEST_TIMES wrapper shape; merge with tests/tools/merge_test_durations.py into a scratch file, then overlay onto .test_durations (it refuses nodeids that disagree).
  • A workflow comment that names a tests/tools/ path must be a ground-truth plan input (test_the_workflow_reads_nothing_the_planner_skips scans comments too).
  • pytest_split is not in the selfscan venv; replay least_duration by hand or use the CI venv.

🤖 Generated with Claude Code

squid-protocol and others added 3 commits October 16, 2026 10:11
…isted files (Part of #5133)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…seconds; merge tool reads the part times file (Part of #5133)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@squid-protocol squid-protocol added the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Oct 16, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol marked this pull request as ready for review October 16, 2026 14:46
@squid-protocol
squid-protocol enabled auto-merge (squash) October 16, 2026 14:48
@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

@squid-protocol

Copy link
Copy Markdown
Owner Author

PR #5264 @ 817ccec: 3 failed check(s)

== Muninn (failure) -- real
https://github.com/squid-protocol/gitgalaxy/runs/117037692487
repro: no local equivalent; read the check page
log tail:

== full-suite part 1/3 (failure) -- real
https://github.com/squid-protocol/gitgalaxy/actions/runs/38918476748/job/117033423527
repro: python -m pytest -q tests/tools/test_sweep_plan.py::test_a_pull_request_ignores_cobol_mainframe_once_and_nothing_else_does
failing tests: tests/tools/test_sweep_plan.py::test_a_pull_request_ignores_cobol_mainframe_once_and_nothing_else_does
errors:
fail-on-cache-miss: false
[--ai-guardrails] [--fail-on-secrets]
[--fail-on-malware]
--fail-on-secrets CI/CD Gate: Fail build if hardcoded secrets are
--fail-on-malware CI/CD Gate: Fail build if ML threat inference flags
CI/CD Gate: Fail build if any file exceeds this risk
CI/CD Gate: fail the build if any file's structural
E KeyError: 'include'
FAILED tests/tools/test_sweep_plan.py::test_a_pull_request_ignores_cobol_mainframe_once_and_nothing_else_does - KeyError: 'include'
##[error]Process completed with exit code 1.
log tail:
env:
PYTHONUTF8: 1
GITGALAXY_LICENSE_KEY: COMMUNITY_FREE_TIER
OMP_NUM_THREADS: 1
pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
PYTEST_ADDOPTS: --ignore=tests/cobol_mainframe
##[endgroup]
With the provided path, there will be 1 file uploaded
Artifact name is valid!
Root directory input is valid!
Uploading artifact: test-times-part-1.zip
Beginning upload of artifact content to blob storage
Uploaded bytes 170321
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is 60329d69354c05a6ae25b0ab6585945c6742354b15b0d27534cfb9cf63c92be6
Finalizing artifact upload
Artifact test-times-part-1 successfully finalized. Artifact ID 12054570486
Artifact test-times-part-1 has been successfully uploaded! Final size is 170321 bytes. Artifact ID is 12054570486
Artifact download URL: https://github.com/squid-protocol/gitgalaxy/actions/runs/38918476748/artifacts/12054570486
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/5adeffad-aa1f-4cda-b455-6a2fdb69fc2b' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/bin/git config --global --add safe.directory /home/runner/work/gitgalaxy/gitgalaxy
Removing SSH command configuration
[command]/usr/bin/git config --local --name-only --get-regexp core.sshCommand
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/usr/bin/git config --local --name-only --get-regexp http.https://github.com/.extraheader
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http.https://github.com/.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/usr/bin/git config --local --name-only --get-regexp ^includeIf.gitdir:
[command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
Cleaning up orphan processes

== muninn (failure) -- infra
https://github.com/squid-protocol/gitgalaxy/actions/runs/38918477026/job/117031968428
repro: no local equivalent; read the check page
errors:
fail-on: info
muninn: scanning . (formats=sarif,comment, fail-on=info)
log tail:
muninn: wrote muninn.sarif
muninn: found 1 finding(s) at or above "info" severity
##[group]Run github/codeql-action@24c5418
with:
sarif_file: muninn.sarif
checkout_path: /home/runner/work/gitgalaxy/gitgalaxy
token: ***
matrix: null
wait-for-processing: true
##[endgroup]
Job run UUID is 18844fb3-f903-45d1-be43-6f5a6f3b4536.
Post-processing sarif files: ["muninn.sarif"]
Validating muninn.sarif
Adding fingerprints to SARIF file. See https://docs.github.com/en/code-security/reference/code-scanning/sarif-support-for-code-scanning#data-for-preventing-duplicated-alerts for more information.
##[group]Uploading code scanning results
Uploading results
Successfully uploaded results
##[endgroup]
##[group]Waiting for processing to finish
Analysis upload status is complete.
##[endgroup]
Post job cleanup.
##[group]Uploading combined SARIF debug artifact
##[endgroup]
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/09ec3ba0-bba5-4428-8977-aa4f64da6c87' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/bin/git config --global --add safe.directory /home/runner/work/gitgalaxy/gitgalaxy
Removing SSH command configuration
[command]/usr/bin/git config --local --name-only --get-regexp core.sshCommand
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/usr/bin/git config --local --name-only --get-regexp http.https://github.com/.extraheader
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http.https://github.com/.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/usr/bin/git config --local --name-only --get-regexp ^includeIf.gitdir:
[command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
Cleaning up orphan processes

@squid-protocol squid-protocol added shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md shepherd:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md shepherd:waiting-on-main Bot: the failing check fails on main too (main's to fix). Guide: docs/ci.md and removed shepherd:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md labels Oct 16, 2026
@squid-protocol squid-protocol added shepherd:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md shepherd:waiting-on-main Bot: the failing check fails on main too (main's to fix). Guide: docs/ci.md shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md labels Oct 16, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol squid-protocol added shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md labels Oct 16, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

squid-protocol and others added 2 commits October 16, 2026 17:01
… split-based job (Part of #5133)

Part 1 paid the cold corpus scan inside timed tests and failed the per-test
ratchet; test_sweep_plan still expected the removed matrix include list.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@squid-protocol squid-protocol removed the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Oct 16, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

CI shepherd: the head of this PR (bc3acab) is not the one a maintainer labelled shepherd:merge on (new commits, or never approved), so the label was removed and nothing merges unreviewed code. Re-add the label when the new head is ready (shepherd:reapprove marks this PR until then).

@squid-protocol squid-protocol added shepherd:waiting-on-main Bot: the failing check fails on main too (main's to fix). Guide: docs/ci.md shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md and removed shepherd:waiting-on-main Bot: the failing check fails on main too (main's to fix). Guide: docs/ci.md shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md labels Oct 17, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

CI shepherd: the head of this PR (706a238) is not the one a maintainer labelled shepherd:merge on (new commits, or never approved), so the label was removed and nothing merges unreviewed code. Re-add the label when the new head is ready (shepherd:reapprove marks this PR until then).

@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant