From 140739a69f4f3a99d004f025bcb3e656b3be8ec9 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Mon, 12 Oct 2026 12:59:55 +0200 Subject: [PATCH] CI: unit tests and the validation battery take turns on the GPU Both run on the same runner machine and its one GPU. In run 380387 the unit-test job reached Rugnux_FirstPassMemoMatchesRecomputation while the battery job (same runner, same minute) was processing one of its larger sets; the FFT indexer's cuFFT plan found 0.1 of 15.6 GB free and the test failed, as a GPU out-of-memory is meant to. The unit-test job joins the battery's concurrency group, so the two no longer overlap (which also keeps the battery's timings clean). Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01EizBKhTqrAYago9KJG3dA3 --- .gitea/workflows/build_and_test.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitea/workflows/build_and_test.yml b/.gitea/workflows/build_and_test.yml index a6c1774ca..1bb6f53de 100644 --- a/.gitea/workflows/build_and_test.yml +++ b/.gitea/workflows/build_and_test.yml @@ -411,6 +411,12 @@ jobs: # was not already run, and a release build is the one case where the wait is pure delay. if: "!(github.event_name == 'workflow_dispatch' && (github.event.inputs.create_release == 'true' || github.event.inputs.create_release == true))" runs-on: jfjoch_rocky8 + # The battery (battery.yml) runs on the same machine and GPU, and its rugnux takes the card's + # memory as its sets need it: a GPU test beside it finds the card full, and a GPU out-of-memory + # ends the run by design. One at a time, in the battery's own concurrency group. + concurrency: + group: battery + cancel-in-progress: false container: image: gitea.psi.ch/leonarski_f/jfjoch_rocky8:2609 options: --gpus all