Skip to content

CI: use the self-hosted GPU runner for McStas OpenACC tests - #3079

Draft
willend wants to merge 3 commits into
mainfrom
2026-11-gpu-selfhosted-ci
Draft

willend wants to merge 3 commits into
mainfrom
2026-11-gpu-selfhosted-ci

Conversation

@willend

@willend willend commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Free-form text area

Please describe what your PR is adding in terms of features or bugfixes:

Uses the new self-hosted GPU runner (willend-HP-Z4-G4-Workstation, label self-hosted, nvhpc preinstalled) for McStas OpenACC testing, with the same conda-forge setup as the existing OpenACC leg.

  • mcstas-basictest: the changes job checks via the runners API whether the self-hosted runner is online and idle. If so, the OpenACC leg runs there and actually executes the tests on the GPU (no -n0). If not, it stays compile-only on ubuntu-24.04 as before, so the runner never becomes a queue bottleneck.
  • mcstas-conda-testsuite (nightly): new OpenACC leg that always runs on the self-hosted runner (queues if busy). Its output becomes a GPU column in the nightly mcviewtest comparison, nightly site and release assets.
  • Self-hosted jobs clean the persistent workspace first, skip the nvhpc install and apt mirror steps, and print nvc --version / nvidia-smi.

Requires repo secret GPU_RUNNER_TOKEN: fine-grained PAT, Administration: read on mccode-dev/McCode. Without it (and on fork PRs, which get no secrets), the basictest always uses the hosted compile-only leg, so fork PRs never reach the self-hosted machine.

Known limitation: the idle check is racy; two runs starting together may both pick the self-hosted runner and one queues.


Declaration of use of AI-tools

  • Please add a checkmark here if you used AI-tools during the work for this contribution
  • Furter, please describe how / where and for what the tools were used: Claude Code wrote the workflow changes and this description; reviewed by the author.

Development OS / boundary conditions

Please describe what OS you developed and tested your additions on, and if any special dependencies are required:

Edited on macOS and checked with actionlint. Not yet run on the self-hosted runner. Needs nvc on PATH in the runner's login shell (bash -el) and the GPU_RUNNER_TOKEN secret.


PR Checklist for contributing to McStas/McXtrace

  • My contribution contains something else

    • Explanation is added in free form text above or below the checklist

🤖 Generated with Claude Code

willend and others added 2 commits November 9, 2026 15:09
basictest: the OpenACC leg runs on the self-hosted runner when it is
idle (checked via the runners API, secret GPU_RUNNER_TOKEN), otherwise
compile-only on a hosted runner as before.
Nightly testsuite: new OpenACC leg on the self-hosted runner.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The login shell there did not activate the micromamba env, so
mccode-build-conda found no $CONDA_PREFIX.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@willend
willend marked this pull request as draft November 9, 2026 17:08
@willend

willend commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

Putting in draft and disabling self-hosted running again.

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.

1 participant