Skip to content

CI: the code-coverage job's timeout-minutes is 30, tighter than the pl - #289

Merged
1-Bart-1 merged 1 commit into
mainfrom
agent/288-ci-the-code-coverage-job-s-timeout-minut
Sep 11, 2026
Merged

CI: the code-coverage job's timeout-minutes is 30, tighter than the pl#289
1-Bart-1 merged 1 commit into
mainfrom
agent/288-ci-the-code-coverage-job-s-timeout-minut

Conversation

@1-Bort-1

@1-Bort-1 1-Bort-1 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

TL;DR

test-with-code-coverage had timeout-minutes: 30 while the plain test job, which does strictly less work, had 40 — so the slower job was the one that got killed. Raised the coverage job to 50.

What the cap was actually cutting off

The job that was cancelled on #285 had finished. Attempt 2 of run 34401975496, Julia 1.12 - ubuntu-latest - x64 - with code coverage: every step reports success, Complete job included, and the job is cancelled at 30m01s with The job has exceeded the maximum execution time of 30m0s.

The steps of that attempt: setup, cache and buildpkg 1m02s · julia-runtest 28m15s · julia-processcoverage 0m24s · codecov 0m02s · post-steps 0m15s. That is ≈29m58s of work against a 30m00s cap. Inside the 28m15s of julia-runtest, the suite itself was 10m06s (6304 passed, 1 broken, 0 failed); the other ~18 minutes were the cold precompile of the test environment after a julia-actions/cache@v2 miss.

So this is not one unlucky run. Over the last 11 CI runs the coverage jobs land at 9, 10, 10, 10, 10, 12, 14, 14, 14, 16, 16, 17, 20, 20, 21, 26, 27, 28, 28 and 28 minutes — warm around 10–16, cold around 26–28. Three green runs came within two minutes of the cap. The plain test ubuntu jobs over the same runs take 21–29 minutes under their 40-minute cap, so the job doing less work had the more generous margin.

I went with 50 rather than 40 because 40 would only restore parity with the plain job, and the coverage job adds instrumentation, julia-processcoverage and the Codecov upload on top of the same suite. 50 against a 28-minute cold run is roughly the margin test already has at 40 against 29.

The failure mode this removes is worth naming: the check goes red with the suite entirely green, which reads at a glance exactly like a real test failure — the same PR had a genuine one (#287) two attempts earlier.

Found while reading the file

test-with-code-coverage has no if: github.event_name != 'pull_request' || github.event.pull_request.draft == false guard, so it runs on draft PRs while test skips them. That is a behaviour change, not a timeout fix, so it is not in this diff.

fail-fast: false on both jobs is #279 and untouched here.

Verification

  • Reproduced first: run 34401975496 attempt 2, coverage job cancelled at 30m01s with all steps success; attempt 1 failure at 16m05s, attempt 3 success at 10m17s
  • No Julia code changed, so no test covers this — the verification is CI on this branch running the coverage job under the new cap
  • Local CI mirror (agent ci-local): PASS in 9m
  • GitHub CI on this PR: PASS, both runs. The Julia 1.12 coverage job took 28m18s — green, and 1m42s inside the cap it used to run under. The 1.11 coverage job took 21m54s; the plain test ubuntu jobs 27m11s and 25m43s.
  • Docs n/a · no REUSE in this repo · branch cut from main at 3f75701, no conflict
  • Changelog: n/a, a CI job cap is not user-visible
  • Risk: 50 is generous enough that a genuinely hung suite now burns 50 minutes of runner time before it is cut, instead of 30.

Scope

+1 / -1 in .github/workflows/CI.yml, one integer. No stack.

Closes #288 · task VortexStepMethod.jl-288

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P5dYbSWfoT161rTHnoc2RB
@1-Bort-1 1-Bort-1 added agent:running Agent task state agent:ci Agent task state and removed agent:running Agent task state labels Sep 9, 2026

@1-Bort-1 1-Bort-1 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent review (advisory)

Verdict: APPROVE WITH COMMENTS · 0 inline, 0 off the diff

Good

  • Raises only the coverage job timeout to 50, keeping the plain test job unchanged, matching the PR card's one-idea scope.
  • The number is backed by data: cold coverage runs land at 26–28 minutes against a 30-minute cap, so 50 restores a safety margin comparable to the plain job's 40-minute cap.
  • No Julia code, docs, or dependencies are touched; only .github/workflows/CI.yml line 76 changes.

Not good

  • The coverage job still runs on draft PRs while the plain test job skips them; the PR card notes this but leaves the inconsistency in place.
  • 50 minutes is generous enough that a genuinely hung suite now wastes more runner time before the runner kills it.

opencode, rubric CLEAN_CODE.md. A different lab from the implementer
on purpose: a reviewer sharing its blind spots would not flag its mistakes.

@1-Bort-1

1-Bort-1 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

Local full suite: PASS (9 min, Julia 1.12.7, one cell of the matrix)

@codecov

codecov Bot commented Sep 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@1-Bart-1
1-Bart-1 merged commit 6af7183 into main Sep 11, 2026
9 checks passed
@1-Bart-1
1-Bart-1 deleted the agent/288-ci-the-code-coverage-job-s-timeout-minut branch September 11, 2026 20:40
@1-Bort-1 1-Bort-1 added agent:done Agent task state and removed agent:review Agent task state labels Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent:done Agent task state

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI: the code-coverage job's timeout-minutes is 30, tighter than the pl

2 participants