Skip to content

ci: pull the corpus's images in parallel and print per-test durations - #533

Merged
vjaganat90 merged 2 commits into
PolusAI:masterfrom
vjaganat90:ci/faster-run-workflows
Oct 15, 2026
Merged

vjaganat90 merged 2 commits into
PolusAI:masterfrom
vjaganat90:ci/faster-run-workflows

Conversation

@vjaganat90

@vjaganat90 vjaganat90 commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

Stacked on #534 (fix/vjaganat90-images). Merge that first; this PR's own changes are the commits above it.

What

  • Run Workflows pulls the corpus's images with the same pytest workers as the runs that follow, instead of one workflow at a time.
  • The corpus steps print pytest's per-test durations, and a first step prints the runner's cores, memory, disk and Docker usage.

Why The image pull took 2.2 min in series, almost all of it waiting on the registry, and the slowest workflows were read off toil's timings rather than measured under cwltool.

@darkclad darkclad left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Reviewed the two commits above #534 (791e5c2a, 14cd8c0a), which change only run_workflows.yml. Giving test_cwl_docker_extract the pytest workers looks safe. It writes to the same autogenerated/ tree that test_run_workflows_on_push already writes to under those workers, and the Docker daemon dedupes concurrent pulls of one image. --durations=0 on both corpus steps is what the description asks for.

No Run Workflows dispatch for this branch has run yet, though. All three (02:12, 05:25 and 06:02 UTC) sat queued with no steps executed and were then cancelled by a later dispatch. The concurrency group, ${{ github.workflow }}-cwltool-${{ github.ref }}-${{ inputs.sender_repo }}-${{ inputs.mm-workflows_ref}}, does not include inputs.wic_ref. github.ref is always master for a dispatched run, so every sophios branch dispatched from vjaganat90/sophios against mm-workflows main shares one group: this PR, #534 and the nf323 rebase each cancel the others. That problem predates this PR. Its effect here is that the 2.2-min serial baseline has no parallel measurement to compare with, and nothing yet shows the parallel pull passing on the runner. Could you add inputs.wic_ref to the group (here or in a follow-up) and link a completed run, so this change has a passing run behind it?

Comment thread .github/workflows/run_workflows.yml Outdated
run: |
nproc
free -g | head -2
df -h / | tail -1

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Nit: the comment above says this reports the disk the corpus runs on, but / is only that disk if the runner's work directory sits on the root filesystem. On a self-hosted runner it may be a separate mount. df -h "$GITHUB_WORKSPACE" | tail -1 measures the disk the corpus actually uses.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Fixed in d5f4513: the step now prints df -h "$GITHUB_WORKSPACE" /tmp. The corpus's outputs and cache sit in the workspace and cwltool's scratch goes to /tmp, so either can be the one that fills up.

@vjaganat90
vjaganat90 force-pushed the ci/faster-run-workflows branch from 14cd8c0 to a0c365d Compare October 15, 2026 15:13
@vjaganat90

vjaganat90 commented Oct 15, 2026 •

Copy link
Copy Markdown
Member Author

A finished run of this branch on my fork: run 38690046521 at 14cd8c0a. cwl-docker-extract with the pytest workers took 35 s, against the 2.2 min serial baseline. The only failures are the three bbbc tests, which need the images from PolusAI/image-workflows#28.

@vjaganat90
vjaganat90 force-pushed the ci/faster-run-workflows branch from a0c365d to d5f4513 Compare October 15, 2026 15:18
test_cwl_docker_extract compiles each on-push workflow and docker-pulls its
images; the step ran its 30 tests in series for 2.2 min (run 38441960443),
nearly all of it waiting on the registry. The runs that follow already share
the autogenerated/ directory across PYTEST_WORKERS processes, so the pull
step does the same.
The corpus steps print pytest's slowest-durations table, as the weekly lane
does, so the longest workflows under cwltool are read from the log instead of
inferred from toil. A step before setup prints the core count the worker
count is sized against, memory, and how full the workspace and /tmp disks are.
@vjaganat90
vjaganat90 force-pushed the ci/faster-run-workflows branch from d5f4513 to 248cae0 Compare October 15, 2026 15:32

@darkclad darkclad left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

LGTM. The runner step now reports the workspace and /tmp disks. Fork run 38690046521 shows cwl-docker-extract taking 35 s with the workers, down from 2.2 min. Its only failures are the three bbbc downloads, and those pass once paired with image-workflows#28. Adding inputs.wic_ref to the concurrency group is still worth a follow-up, so dispatches from different sophios branches stop cancelling each other.

@vjaganat90
vjaganat90 merged commit c8e5742 into PolusAI:master Oct 15, 2026
3 checks passed
@vjaganat90
vjaganat90 deleted the ci/faster-run-workflows branch October 15, 2026 16:03
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.

2 participants