Skip to content

fix: align GPU CI sharding tags with detection tags#11179

Merged
pinin4fjords merged 1 commit intomasterfrom
fix/gpu-ci-shard-tags
Apr 14, 2026
Merged

fix: align GPU CI sharding tags with detection tags#11179
pinin4fjords merged 1 commit intomasterfrom
fix/gpu-ci-shard-tags

Conversation

@pinin4fjords
Copy link
Copy Markdown
Member

Summary

One-line fix: the GPU CI sharding step uses tags: "gpu" but the detection step uses tags: "gpu,gpu_highmem". This means the shard dry-run only counts gpu-tagged tests, missing gpu_highmem-tagged tests (like parabricks).

The bug

In .github/workflows/nf-test-gpu.yml:

  • Line 67 (detection): tags: "gpu,gpu_highmem" - finds test files with either tag
  • Line 84 (sharding): tags: "gpu" - only counts gpu-tagged tests in its dry run

When only gpu_highmem-tagged tests change (e.g. parabricks-only PRs), the sharding step finds 0 tests and total_shards=0, which would skip all GPU jobs. This is currently masked because the matrix include generates gpu_highmem runner entries regardless, but the nf-test execution still runs with --tag gpu_highmem and finds the tests. However, a test tagged only gpu (not gpu_highmem) would pass sharding but silently not execute on the gpu_highmem runner.

Fix

Change line 84 from tags: "gpu" to tags: "gpu,gpu_highmem" to match line 67.

Discovered while adding GPU tests for ribodetector (see #11177, #11178).

🤖 Generated with Claude Code

The detection step (line 67) uses `tags: "gpu,gpu_highmem"` to find
changed GPU test files, but the sharding step (line 84) only uses
`tags: "gpu"` for its nf-test dry run. This means tests tagged only
with `gpu_highmem` (like parabricks) are detected but produce 0
shards, causing the GPU jobs to be skipped with "No tests to execute."

Currently this is masked because parabricks tests are the only GPU
tests, and the `include` matrix always generates the `gpu_highmem`
runner. But any test tagged `gpu` without `gpu_highmem` would pass
sharding and then silently not execute on the `gpu_highmem` runner.

Aligning the sharding tags with the detection tags fixes both cases.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@pinin4fjords pinin4fjords added this pull request to the merge queue Apr 14, 2026
Merged via the queue into master with commit d46b2a0 Apr 14, 2026
13 checks passed
@pinin4fjords pinin4fjords deleted the fix/gpu-ci-shard-tags branch April 14, 2026 10:17
oliverdrechsel pushed a commit to oliverdrechsel/nf-core.modules that referenced this pull request Apr 14, 2026
fix: include gpu_highmem tag in GPU CI sharding step

The detection step (line 67) uses `tags: "gpu,gpu_highmem"` to find
changed GPU test files, but the sharding step (line 84) only uses
`tags: "gpu"` for its nf-test dry run. This means tests tagged only
with `gpu_highmem` (like parabricks) are detected but produce 0
shards, causing the GPU jobs to be skipped with "No tests to execute."

Currently this is masked because parabricks tests are the only GPU
tests, and the `include` matrix always generates the `gpu_highmem`
runner. But any test tagged `gpu` without `gpu_highmem` would pass
sharding and then silently not execute on the `gpu_highmem` runner.

Aligning the sharding tags with the detection tags fixes both cases.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
pinin4fjords added a commit that referenced this pull request Apr 14, 2026
With #11179 merged, the sharding step uses both gpu and gpu_highmem
tags. The gpu tag alone is sufficient and runs on g4dn.xlarge which
is adequate for ribodetector.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants